From d261c94237b5634252d8e6fad53722093be549fd Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Fri, 11 Nov 2016 12:04:50 +0100 Subject: [PATCH 1/4] Gulp + webpack + watchers, nginx + gzip --- @salix-services/account/.gitignore | 1 + .../account/server/datasources.json | 2 +- @salix/app/src/bootstrap.js | 2 +- @salix/gulpfile.js | 81 ++++++++++--------- @salix/nginx.conf | 1 + @salix/package.json | 10 +-- @salix/webpack.config.js | 10 ++- 7 files changed, 62 insertions(+), 45 deletions(-) diff --git a/@salix-services/account/.gitignore b/@salix-services/account/.gitignore index aff1045b47..ebbd90ea95 100644 --- a/@salix-services/account/.gitignore +++ b/@salix-services/account/.gitignore @@ -17,3 +17,4 @@ coverage node_modules npm-debug.log +db.json diff --git a/@salix-services/account/server/datasources.json b/@salix-services/account/server/datasources.json index fdb36285e7..335e997b2a 100644 --- a/@salix-services/account/server/datasources.json +++ b/@salix-services/account/server/datasources.json @@ -3,7 +3,7 @@ "db": { "name": "db", "connector": "memory", - "file": "myToken.json" + "file": "db.json" } } diff --git a/@salix/app/src/bootstrap.js b/@salix/app/src/bootstrap.js index 1b3ff0293e..5cc75fa967 100644 --- a/@salix/app/src/bootstrap.js +++ b/@salix/app/src/bootstrap.js @@ -14,4 +14,4 @@ export const bootstrap = () => { throw new Error("element is not defined"); } ng.bootstrap(_element, [NAME]); -}; \ No newline at end of file +}; diff --git a/@salix/gulpfile.js b/@salix/gulpfile.js index 5ae416f35b..69a8f102f3 100644 --- a/@salix/gulpfile.js +++ b/@salix/gulpfile.js @@ -1,44 +1,25 @@ var gulp = require ('gulp'); +var gutil = require('gulp-util'); var wrap = require('gulp-wrap'); var concat = require ('gulp-concat'); var babel = require ('gulp-babel'); var fs = require ('fs'); - -// Routes - -var fileTpl = '\n"<%=file.relative%>": <%=contents%>'; -var globalTpl = 'var routes = {<%=contents%>\n}'; - -gulp.task ('routes', function () -{ - return gulp.src ('./crud/**/routes.js') - .pipe (wrap (fileTpl)) - .pipe (concat ('salix.routes.js', {newLine: ','})) - .pipe (wrap (globalTpl)) - .pipe (babel ({presets: ['es2015']})) - .pipe (gulp.dest ('./build/public')); -}); +var webpack = require ('webpack-stream'); +var webpackConfig = require ('./webpack.config.js'); // Spliting -var baseDir = './app/src/spliting'; -var depsFile = baseDir +'/deps.json'; +var splitingDir = './app/src/spliting'; +var splitingFiles = splitingDir +'/*'; -function splitingFunc () +gulp.task ('spliting', function () { - try { - var jsonDeps = fs.readFileSync (depsFile); - var modules = JSON.parse (jsonDeps); - } - catch (e) - { - console.error (e); - return; - } - - var importTpl = fs.readFileSync (baseDir +'/import.tpl.js', 'utf8'); - var requireTpl = fs.readFileSync (baseDir +'/require.tpl.js', 'utf8'); + var jsonDeps = fs.readFileSync (splitingDir +'/deps.json'); + var modules = JSON.parse (jsonDeps); + + var importTpl = fs.readFileSync (splitingDir +'/import.tpl.js', 'utf8'); + var requireTpl = fs.readFileSync (splitingDir +'/require.tpl.js', 'utf8'); for (var modName in modules) { @@ -57,16 +38,44 @@ function splitingFunc () fs.appendFileSync (splitFile, requireTpl.replace (/\$module/g, deps[i])); } -} +}); -gulp.task ('spliting', function () +// Webpack + +gulp.task ('webpack', ['spliting'], function (callback) { - splitingFunc (); - //gulp.watch (depsFile, splitingFunc); + return gulp.src (['app/index.js', 'login/index.js']) + .pipe (webpack (webpackConfig)) + .pipe (gulp.dest ('build/public/')); +}); + +// Routes + +var routeFiles = './crud/**/routes.js'; + +gulp.task ('routes', function () +{ + var fileTpl = '\n"<%=file.relative%>": <%=contents%>'; + var globalTpl = 'var routes = {<%=contents%>\n}'; + + return gulp.src (routeFiles) + .pipe (wrap (fileTpl)) + .pipe (concat ('salix.routes.js', {newLine: ','})) + .pipe (wrap (globalTpl)) + .pipe (babel ({presets: ['es2015']})) + .pipe (gulp.dest ('./build/public')); +}); + +// Watch + +gulp.task ('watch', function () +{ + gulp.watch (routeFiles, ['routes']); + gulp.watch (splitingFiles, ['spliting']); }); // Default -gulp.task ('default', ['routes', 'spliting']); - +gulp.task ('build', ['routes', 'webpack']); +gulp.task ('default', ['watch', 'build']); diff --git a/@salix/nginx.conf b/@salix/nginx.conf index ff25d3e730..ea73254cd9 100644 --- a/@salix/nginx.conf +++ b/@salix/nginx.conf @@ -10,6 +10,7 @@ events { http { sendfile on; + gzip on; default_type application/octet-stream; access_log build/nginx/access.log; diff --git a/@salix/package.json b/@salix/package.json index ce851711ec..53c16492fd 100644 --- a/@salix/package.json +++ b/@salix/package.json @@ -29,6 +29,7 @@ "gulp-babel": "^6.1.2", "gulp-concat": "^2.6.0", "gulp-insert": "^0.5.0", + "gulp-util": "^3.0.7", "gulp-wrap": "^0.13.0", "json-loader": "^0.5.4", "node-sass": "^3.11.0", @@ -37,16 +38,13 @@ "sass-loader": "^4.0.2", "style-loader": "^0.13.1", "webpack": "^1.13.3", - "webpack-dev-server": "^1.16.2" + "webpack-dev-server": "^1.16.2", + "webpack-stream": "^3.2.0" }, "scripts": { "build": "webpack --progress --colors --watch", "dev": "webpack-dev-server --progress --colors --hot", - "lint": "eslint ./ --cache --ignore-pattern .gitignore", - "gulp": "gulp", - "express": "node server.js", - "nginx": "/usr/sbin/nginx -p . -c nginx.conf", - "nginx-stop": "/usr/sbin/nginx -p . -c nginx.conf -s stop" + "lint": "eslint ./ --cache --ignore-pattern .gitignore" }, "pre-commit": [ "lint" diff --git a/@salix/webpack.config.js b/@salix/webpack.config.js index 4c739fec9b..f9726cb68d 100644 --- a/@salix/webpack.config.js +++ b/@salix/webpack.config.js @@ -1,4 +1,5 @@ +var webpack = require ('webpack'); var path = require ('path'); module.exports = @@ -37,6 +38,12 @@ module.exports = } ] }, + plugins: [ + new webpack.optimize.UglifyJsPlugin ({ + minimize: true, + compress: { warnings: false } + }) + ], resolve: { modulesDirectories: [ __dirname, @@ -47,6 +54,7 @@ module.exports = inline: true, host: '0.0.0.0' }, - devtool: 'eval-source-map' + devtool: 'source-map', + watch: true }; From 8beb6eff311e85496c91855d5997b795367c2ab6 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Fri, 11 Nov 2016 12:29:28 +0100 Subject: [PATCH 2/4] Borrados archivos residuales --- @salix/app/src/spliting/deps.json | 3 +-- @salix/buys/index.js | 2 -- @salix/buys/src/buys.js | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 @salix/buys/index.js delete mode 100644 @salix/buys/src/buys.js diff --git a/@salix/app/src/spliting/deps.json b/@salix/app/src/spliting/deps.json index 33c88e8901..ea032e0845 100644 --- a/@salix/app/src/spliting/deps.json +++ b/@salix/app/src/spliting/deps.json @@ -1,5 +1,4 @@ { - "app": ["buys", "crud"], - "buys": ["crud"], + "app": ["crud"], "crud": [] } diff --git a/@salix/buys/index.js b/@salix/buys/index.js deleted file mode 100644 index af578bfcd4..0000000000 --- a/@salix/buys/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './src/buys'; - diff --git a/@salix/buys/src/buys.js b/@salix/buys/src/buys.js deleted file mode 100644 index a0e102befc..0000000000 --- a/@salix/buys/src/buys.js +++ /dev/null @@ -1 +0,0 @@ -export * from './spliting'; \ No newline at end of file From 90b1d3e69084c13b632675dc70dfcb0af64676b4 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Fri, 11 Nov 2016 13:33:58 +0100 Subject: [PATCH 3/4] Nginx mime types --- @salix/nginx.conf | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/@salix/nginx.conf b/@salix/nginx.conf index ea73254cd9..91a6bf4156 100644 --- a/@salix/nginx.conf +++ b/@salix/nginx.conf @@ -42,5 +42,18 @@ http { proxy_pass http://127.0.0.1:3002/$1$is_args$args; } } + + types { + text/html html; + application/json json; + application/javascript js; + text/css css scss; + text/xml xml; + image/x-icon ico; + image/png png; + image/svg+xml svg; + image/gif gif; + image/jpeg jpeg jpg; + } } From 8e81cec20ee555465282901f11156b8ce2ec4289 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Tue, 15 Nov 2016 14:46:34 +0100 Subject: [PATCH 4/4] Uglify desactivado en webpack por problemas con angular --- @salix/webpack.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/@salix/webpack.config.js b/@salix/webpack.config.js index f9726cb68d..eb4c55cd8b 100644 --- a/@salix/webpack.config.js +++ b/@salix/webpack.config.js @@ -38,13 +38,13 @@ module.exports = } ] }, - plugins: [ +/* plugins: [ new webpack.optimize.UglifyJsPlugin ({ minimize: true, compress: { warnings: false } }) ], - resolve: { +*/ resolve: { modulesDirectories: [ __dirname, 'node_modules'