sinto 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # Mentol web projekt management
2
+
3
+ ## Commands
4
+
5
+ * sin init - Initilalize the project
6
+ * sin serve - Start development server
7
+ * sin build - Start public generation
8
+
9
+ The task manager is gulp. Development serve is browser-sync.
package/cli.js ADDED
@@ -0,0 +1,7 @@
1
+
2
+ const yargs = require('yargs/yargs')
3
+ const { hideBin } = require('yargs/helpers')
4
+
5
+ const cli = yargs(hideBin(process.argv));
6
+
7
+ module.exports = cli;
@@ -0,0 +1,13 @@
1
+
2
+ const bsconfigContent =
3
+ {
4
+ server: [
5
+ "src",
6
+ "node_modules/bootstrap/dist/css",
7
+ "node_modules/bootstrap/dist/js"
8
+ ],
9
+ port: 3000,
10
+ watch: true
11
+ };
12
+
13
+ module.exports = bsconfigContent;
@@ -0,0 +1,39 @@
1
+
2
+ const gulfileContent = `
3
+ const { src, dest, series, parallel, watch } = require('gulp');
4
+ const uglify = require('gulp-uglify');
5
+ const cleanCss = require('gulp-clean-css');
6
+ const browserSync = require('browser-sync').create();
7
+
8
+ function genHTML(cb) {
9
+ console.log('HTML másolás...');
10
+ src('src/**/*.html')
11
+ .pipe(dest('public'))
12
+ cb();
13
+ }
14
+
15
+ function minifyJS(cb) {
16
+ console.log('JavaScript minifikálás ...');
17
+ src('src/**/*.js')
18
+ .pipe(uglify())
19
+ .pipe(dest('public'));
20
+ cb();
21
+ }
22
+
23
+ function minifyCSS(cb) {
24
+ console.log('CSS minifikálás ...');
25
+ src('src/**/*.css')
26
+ .pipe(cleanCss())
27
+ .pipe(dest('public'));
28
+ cb();
29
+ }
30
+
31
+ function build(cb) {
32
+ parallel(genHTML, minifyJS, minifyCSS)(cb);
33
+ }
34
+
35
+ exports.default = build;
36
+
37
+ `;
38
+
39
+ module.exports = gulfileContent;
@@ -0,0 +1,23 @@
1
+
2
+
3
+ const htmlContent = `
4
+ <!DOCTYPE html>
5
+ <html lang="hu">
6
+ <head>
7
+ <meta charset="UTF-8">
8
+ <title>Mentol Project</title>
9
+ <link rel="stylesheet" href="bootstrap.css">
10
+ <link rel="stylesheet" href="style.css">
11
+ </head>
12
+ <body>
13
+ <div class="container">
14
+ <h1>Mentol Project</h1>
15
+ <p>Ez egy alapértelmezett index.html fájl, amelyet a mentol parancs hozott létre.</p>
16
+ </div>
17
+ <script src="app.js"></script>
18
+ </body>
19
+ </html>
20
+
21
+ `
22
+
23
+ module.exports = htmlContent
@@ -0,0 +1,22 @@
1
+
2
+ const packageContent =
3
+ {
4
+ name: 'mentol-project',
5
+ version: '0.1.0',
6
+ description: 'A Mentol parancs által létrehozott projekt',
7
+ scripts: {
8
+ 'start': 'browser-sync start --config bs-config.json',
9
+ 'build': 'gulp'
10
+ },
11
+ "dependencies": {
12
+ "bootstrap": "^5.3.3"
13
+ },
14
+ "devDependencies": {
15
+ "browser-sync": "^3.0.2",
16
+ "gulp": "^5.0.0",
17
+ "gulp-clean-css": "^4.3.0",
18
+ "gulp-uglify": "^3.0.2"
19
+ }
20
+ }
21
+
22
+ module.exports = packageContent;
package/package.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "sinto",
3
+ "version": "1.0.0",
4
+ "description": "web development manager",
5
+ "bin": {
6
+ "sin": "sin.js"
7
+ },
8
+ "scripts": {
9
+ "test": "echo \"Error: no test specified\" && exit 1"
10
+ },
11
+ "author": "Sallai András",
12
+ "license": "MIT",
13
+ "dependencies": {
14
+ "browser-sync": "^3.0.2",
15
+ "commander": "^12.0.0",
16
+ "ejs": "^3.1.9",
17
+ "fs-extra": "^11.2.0",
18
+ "gulp": "^5.0.0",
19
+ "yargs": "^17.7.2"
20
+ }
21
+ }
package/server.js ADDED
@@ -0,0 +1,39 @@
1
+ const browserSync = require('browser-sync');
2
+ const fs = require('fs');
3
+ const configFilePath = 'bs-config.json';
4
+
5
+ const readConfigFile = (configFilePath, callback) => {
6
+ fs.readFile(configFilePath, 'utf8', (err, data) => {
7
+ if (err) {
8
+ callback(err);
9
+ return;
10
+ }
11
+ try {
12
+ const config = JSON.parse(data);
13
+ callback(null, config);
14
+ } catch (parseError) {
15
+ callback(parseError);
16
+ }
17
+ });
18
+ };
19
+
20
+ const initializeServer = (argv, config) => {
21
+ console.log("config tartalma: ", config)
22
+ if (argv.port != undefined) {
23
+ config.port = argv.port;
24
+ }
25
+ browserSync.init(config);
26
+ console.log(`BrowserSync szerver elindítva a ${port}-es porton!`);
27
+ }
28
+
29
+ const serve = (argv) => {
30
+ readConfigFile(configFilePath, (error, config) => {
31
+ if(error) {
32
+ console.error('Hiba! A konfigfájl nem olvasható!')
33
+ return;
34
+ }
35
+ initializeServer(argv, config)
36
+ })
37
+ };
38
+
39
+ module.exports = serve;
package/sin.js ADDED
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fsExtra = require('fs-extra');
4
+ const jsonfile = require('jsonfile');
5
+ const { exec } = require('child_process');
6
+
7
+ const cli = require('./cli');
8
+ const defaultHtmlContent = require('./generators/genHtml');
9
+ const defaultGulpfileContent = require('./generators/genGulpfile');
10
+ const defaultPackageContent = require('./generators/genPackage');
11
+ const defaultBsconfigContent = require('./generators/genBsconfig');
12
+ const serve = require('./server');
13
+
14
+ const DEBUG=false
15
+
16
+ const createDirectory = (path) => {
17
+ if (!fsExtra.existsSync(path)) {
18
+ fsExtra.mkdirSync(path);
19
+ }
20
+ };
21
+
22
+ const createFile = (path, content) => {
23
+ if (!fsExtra.existsSync(path)) {
24
+ fsExtra.writeFileSync(path, content);
25
+ }
26
+ };
27
+
28
+ const createPackageJsonFile = (directory) => {
29
+ const packageJsonPath = `${directory}/package.json`;
30
+ jsonfile.writeFileSync(packageJsonPath, defaultPackageContent, { spaces: 2 });
31
+ if(DEBUG)
32
+ console.log('package.json fájl létrehozva!');
33
+ };
34
+
35
+ const createIndexHtmlFile = (directory) => {
36
+ const indexHtmlPath = `${directory}/src/index.html`;
37
+ fsExtra.writeFileSync(indexHtmlPath, defaultHtmlContent);
38
+ if(DEBUG)
39
+ console.log('index.html fájl létrehozva!');
40
+ };
41
+
42
+ const createGulpfileJsFile = (directory) => {
43
+ const gulpfileJsPath = `${directory}/gulpfile.js`;
44
+ fsExtra.writeFileSync(gulpfileJsPath, defaultGulpfileContent);
45
+ if(DEBUG)
46
+ console.log('gulpfile.js fájl létrehozva!');
47
+ };
48
+
49
+ const createBsconfigFile = (directory) => {
50
+ const bsconfigPath = `${directory}/bs-config.json`;
51
+ jsonfile.writeFileSync(bsconfigPath, defaultBsconfigContent, { spaces: 2 });
52
+ if(DEBUG)
53
+ console.log('bs-config.json fájl létrehozva!');
54
+ };
55
+
56
+ const init = () => {
57
+ const currentDirectory = process.cwd();
58
+
59
+ createDirectory(`${currentDirectory}/src`);
60
+ createDirectory(`${currentDirectory}/assets`);
61
+
62
+ createFile(`${currentDirectory}/src/style.css`, '');
63
+ createFile(`${currentDirectory}/src/app.js`, '');
64
+ createFile(`${currentDirectory}/README.md`, '# Mentol Project');
65
+ createFile(`${currentDirectory}/package.json`, '{}');
66
+ createFile(`${currentDirectory}/bs-config.json`, '{}');
67
+
68
+ createPackageJsonFile(currentDirectory);
69
+ createIndexHtmlFile(currentDirectory);
70
+ createGulpfileJsFile(currentDirectory);
71
+ createBsconfigFile(currentDirectory);
72
+
73
+ console.log('Alapkönyvtárak és fájlok létrehozva!');
74
+ };
75
+
76
+ const build = (argv) => {
77
+ exec('gulp')
78
+ }
79
+
80
+ const rmno = (argv) => {
81
+ console.log('Not implemented...')
82
+ }
83
+
84
+ const serverOptions = (yargs) => {
85
+ return yargs.option('p', {
86
+ alias: 'port',
87
+ describe: 'Server port number'
88
+ })
89
+ }
90
+
91
+ cli.command('init', 'Initilize the project', {}, init);
92
+ cli.command('serve', 'Start develop server', serverOptions, serve);
93
+ cli.command('build', 'Start build with gulp', {}, build);
94
+ cli.command('rmno', 'Delete node_modules directory', {}, rmno);
95
+
96
+ const main = () => {
97
+ argv = cli.parse();
98
+ if (!argv._[0]) {
99
+ console.log('Használja a "sin init" vagy a "sin serve" parancsot!');
100
+ }
101
+ };
102
+
103
+ main();