diff --git a/web/app.id.js b/web/app.id.js new file mode 100644 index 0000000..227e827 --- /dev/null +++ b/web/app.id.js @@ -0,0 +1 @@ +module.exports = `${new Date().getTime()}`; \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json index daf1f20..e40f031 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -4960,6 +4960,12 @@ "globule": "1.2.0" } }, + "generate-file-plugin": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/generate-file-plugin/-/generate-file-plugin-0.1.2.tgz", + "integrity": "sha1-Nc/SyBHHGhXZRoVleKm2jX5KJ7U=", + "dev": true + }, "generate-function": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", @@ -10529,6 +10535,76 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string-replace-webpack-plugin": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/string-replace-webpack-plugin/-/string-replace-webpack-plugin-0.1.3.tgz", + "integrity": "sha1-c8ZX51nWbP6Arh4M8JGqJW0OcVw=", + "dev": true, + "requires": { + "async": "0.2.10", + "css-loader": "0.9.1", + "file-loader": "0.8.5", + "loader-utils": "0.2.17", + "style-loader": "0.8.3" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "css-loader": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.9.1.tgz", + "integrity": "sha1-LhqgDOfjDvLGp6SzAKCAp8l54Nw=", + "dev": true, + "optional": true, + "requires": { + "csso": "1.3.12", + "loader-utils": "0.2.17", + "source-map": "0.1.43" + } + }, + "csso": { + "version": "1.3.12", + "resolved": "https://registry.npmjs.org/csso/-/csso-1.3.12.tgz", + "integrity": "sha1-/GKGlKLTiTiqrEmWdTIY/TEc254=", + "dev": true, + "optional": true + }, + "file-loader": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz", + "integrity": "sha1-knXQMf54DyfUf19K8CvUNxPMFRs=", + "dev": true, + "optional": true, + "requires": { + "loader-utils": "0.2.17" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true, + "requires": { + "amdefine": "1.0.1" + } + }, + "style-loader": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.8.3.tgz", + "integrity": "sha1-9Pkut9tjdodI8VBlzWcA9aHIU1c=", + "dev": true, + "optional": true, + "requires": { + "loader-utils": "0.2.17" + } + } + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", diff --git a/web/package.json b/web/package.json index 8c61eda..3fb6dca 100644 --- a/web/package.json +++ b/web/package.json @@ -13,7 +13,8 @@ "ci-test": "./node_modules/mocha/bin/mocha src/test --recursive --reporter mochawesome --compilers js:babel-core/register,scss:./src/test/null-compiler --require src/test/setup.js && ./node_modules/istanbul/lib/cli.js --include-all-sources cover ./node_modules/mocha/bin/_mocha -x \"mochawesome-reports/**\" -x \"scripts/**\" -x \"bin/**\" -x \"**.conf**.js\" -x \"dist/**\" -- -R spec src/test --recursive --compilers js:babel-core/register,scss:./src/test/null-compiler --require src/test/setup.js && ./node_modules/istanbul/lib/cli.js report clover", "ci-lint": "./node_modules/eslint/bin/eslint.js -f checkstyle src/** > reports/checkstyle-report.xml ; exit 0", "deploy": "node ./scripts/deploy-surge.js", - "connect": "sudo docker exec -i -t xskillzv2_web_1 /bin/bash" + "connect": "sudo docker exec -i -t xskillzv2_web_1 /bin/bash", + "docker:build": "npm run build:production && docker build -t xebiafrance/skillz-web ." }, "repository": { "type": "git", @@ -62,6 +63,7 @@ "file-loader": "^0.9.0", "file-saver": "^1.3.3", "fs-extra": "^1.0.0", + "generate-file-plugin": "0.1.2", "history": "^4.4.0", "immutable": "^3.8.1", "imports-loader": "^0.6.4", diff --git a/web/webpack/common.config.js b/web/webpack/common.config.js index cfb7402..221c3a4 100644 --- a/web/webpack/common.config.js +++ b/web/webpack/common.config.js @@ -15,6 +15,7 @@ const PATHS = { process.env.BABEL_ENV = ENV; +// noinspection JSUnusedGlobalSymbols const common = { entry: [ PATHS.app @@ -68,7 +69,7 @@ const common = { { test: /\.less$/, loader: "style!css!less" - } + }, ] }, diff --git a/web/webpack/dev.config.js b/web/webpack/dev.config.js index b8e58f4..43961f5 100644 --- a/web/webpack/dev.config.js +++ b/web/webpack/dev.config.js @@ -1,5 +1,6 @@ const webpack = require('webpack'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const GenerateFilePlugin = require('generate-file-plugin'); module.exports = { devtool: 'cheap-module-eval-source-map', @@ -41,6 +42,7 @@ module.exports = { new webpack.NoErrorsPlugin(), new webpack.ProvidePlugin({ jQuery: 'jquery' - }) + }), + new GenerateFilePlugin('app.id.js'), ] }; diff --git a/web/webpack/prod.config.js b/web/webpack/prod.config.js index 3fed15a..61d891a 100644 --- a/web/webpack/prod.config.js +++ b/web/webpack/prod.config.js @@ -1,5 +1,6 @@ -const webpack = require('webpack'), - ExtractTextPlugin = require('extract-text-webpack-plugin'); +const webpack = require('webpack'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const GenerateFilePlugin = require('generate-file-plugin'); module.exports = { devtool: 'source-map', @@ -30,6 +31,7 @@ module.exports = { compress: { warnings: false } - }) + }), + new GenerateFilePlugin('app.id.js'), ] };