diff --git a/Dockerfile.devserver b/Dockerfile.devserver index a17d73811f111d1c2bb60e0c69eae5ce9df8fe09..4f71e92afca24f3796b6f53db297234f02238ffb 100644 --- a/Dockerfile.devserver +++ b/Dockerfile.devserver @@ -5,4 +5,4 @@ RUN chown node:node /opt EXPOSE 9000 WORKDIR /opt USER node -CMD npm run serve +CMD npm install && npm run serve diff --git a/build_deps.sh b/build_deps.sh index 696c69f8ce7860d74d0ce52b3488854b67000781..51a21ad3ba20e0759472cdf554cfbffd1708315b 100755 --- a/build_deps.sh +++ b/build_deps.sh @@ -13,7 +13,6 @@ run_on_modules(){ done } -echo "Installing dependencies" npm install echo "Compiling submodules" run_on_modules build diff --git a/package-lock.json b/package-lock.json index d841e2aa19ae61a6a408c3d98951d62b56e1a873..d36b3cd41aec9ffffa26ea9ebc5f0dd915477a34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,8 @@ "devDependencies": { "webpack": "^4.43.0", "webpack-cli": "^4.3.12", - "webpack-dev-server": "^4.11.1" + "webpack-dev-server": "^4.11.1", + "webpack-shell-plugin": "^0.5.0" } }, "annotations-plugin": { @@ -24916,6 +24917,12 @@ "node": ">=10.0.0" } }, + "node_modules/webpack-shell-plugin": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-shell-plugin/-/webpack-shell-plugin-0.5.0.tgz", + "integrity": "sha512-BJMcVgXzA7Yc/Dq9JFj/wvquYG5qP3lgmCpMYzhP1a+LxZ/z3TbqKJ3W2xTkzQqBeYsgTdOcSdZ/+qYoFBhMhA==", + "dev": true + }, "node_modules/webpack-sources": { "version": "1.4.3", "license": "MIT", @@ -42373,6 +42380,12 @@ "wildcard": "^2.0.0" } }, + "webpack-shell-plugin": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-shell-plugin/-/webpack-shell-plugin-0.5.0.tgz", + "integrity": "sha512-BJMcVgXzA7Yc/Dq9JFj/wvquYG5qP3lgmCpMYzhP1a+LxZ/z3TbqKJ3W2xTkzQqBeYsgTdOcSdZ/+qYoFBhMhA==", + "dev": true + }, "webpack-sources": { "version": "1.4.3", "requires": { diff --git a/package.json b/package.json index fff3f6ab6c74dbaee9d27b11ad4da61d4db9d296..95e52a410d5d13e838f21aafa3904f602eedef80 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,6 @@ "description": "", "private": true, "scripts": { - "prebuild": "./build_deps.sh", "build": "webpack --config webpack.config.js", "preserve": "npm run build", "serve": "webpack serve --config webpack.config.js" @@ -25,6 +24,7 @@ "devDependencies": { "webpack": "^4.43.0", "webpack-cli": "^4.3.12", - "webpack-dev-server": "^4.11.1" + "webpack-dev-server": "^4.11.1", + "webpack-shell-plugin": "^0.5.0" } } diff --git a/webpack.config.js b/webpack.config.js index 60cf4134c6d611a42e052a1325376c698b18eb25..c0519efa548d58056a9d9870112f942bf2dcfe6b 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,7 @@ const path = require('path'); const webpack = require('webpack'); const Dotenv = require('dotenv-webpack'); +const WebpackShellPlugin = require('webpack-shell-plugin'); module.exports = { mode: process.env.WEBPACK_MODE, @@ -38,6 +39,9 @@ module.exports = { /* cf https://gitlab.tetras-libre.fr/iiif/mirador-video-annotation/-/blob/annotation-on-video/webpack.config.js#L42 */ resourceRegExp: /@blueprintjs\/(core|icons)/, // ignore optional UI framework dependencies }), + new WebpackShellPlugin({ + onBuildStart:['./build_deps.sh'] + }), new Dotenv() ] };