diff options
Diffstat (limited to 'language-web')
-rw-r--r-- | language-web/build.gradle | 9 | ||||
-rw-r--r-- | language-web/package-lock.json | 21 | ||||
-rw-r--r-- | language-web/package.json | 4 | ||||
-rw-r--r-- | language-web/webpack.config.js | 5 |
4 files changed, 35 insertions, 4 deletions
diff --git a/language-web/build.gradle b/language-web/build.gradle index 5cf7e684..dcb69406 100644 --- a/language-web/build.gradle +++ b/language-web/build.gradle | |||
@@ -12,7 +12,8 @@ dependencies { | |||
12 | def webpackOutputDir = "${buildDir}/webpack" | 12 | def webpackOutputDir = "${buildDir}/webpack" |
13 | def productionResources = "${webpackOutputDir}/production" | 13 | def productionResources = "${webpackOutputDir}/production" |
14 | def mainClass = 'org.eclipse.viatra.solver.language.web.ServerLauncher' | 14 | def mainClass = 'org.eclipse.viatra.solver.language.web.ServerLauncher' |
15 | def currentNodeEnv = System.getenv('NODE_ENV') ?: 'development' | 15 | def devMode = System.getenv('NODE_ENV') != 'production' |
16 | def currentNodeEnv = devMode ? 'development' : 'production' | ||
16 | 17 | ||
17 | apply plugin: 'com.moowork.node' | 18 | apply plugin: 'com.moowork.node' |
18 | 19 | ||
@@ -59,7 +60,11 @@ shadowJar { | |||
59 | } | 60 | } |
60 | 61 | ||
61 | task jettyRun(type: JavaExec) { | 62 | task jettyRun(type: JavaExec) { |
62 | dependsOn webpackDevelopment | 63 | if (devMode) { |
64 | dependsOn webpackDevelopment | ||
65 | } else { | ||
66 | dependsOn webpackProduction | ||
67 | } | ||
63 | dependsOn sourceSets.main.runtimeClasspath | 68 | dependsOn sourceSets.main.runtimeClasspath |
64 | classpath = sourceSets.main.runtimeClasspath.filter{it.exists()} | 69 | classpath = sourceSets.main.runtimeClasspath.filter{it.exists()} |
65 | main = mainClass | 70 | main = mainClass |
diff --git a/language-web/package-lock.json b/language-web/package-lock.json index 1c98ca49..b785cfe9 100644 --- a/language-web/package-lock.json +++ b/language-web/package-lock.json | |||
@@ -1666,6 +1666,12 @@ | |||
1666 | "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", | 1666 | "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", |
1667 | "dev": true | 1667 | "dev": true |
1668 | }, | 1668 | }, |
1669 | "before-build-webpack": { | ||
1670 | "version": "0.2.11", | ||
1671 | "resolved": "https://registry.npmjs.org/before-build-webpack/-/before-build-webpack-0.2.11.tgz", | ||
1672 | "integrity": "sha512-xigRuKoJmla3cO/BP76CDlmkXmQFrjlHv6oS16RxmbckYTfi5I3ZBp7MnoKv+C05DqDT1pSl+znLf7pv1Vv4ew==", | ||
1673 | "dev": true | ||
1674 | }, | ||
1669 | "big.js": { | 1675 | "big.js": { |
1670 | "version": "5.2.2", | 1676 | "version": "5.2.2", |
1671 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", | 1677 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", |
@@ -8719,6 +8725,12 @@ | |||
8719 | "mime-types": "~2.1.24" | 8725 | "mime-types": "~2.1.24" |
8720 | } | 8726 | } |
8721 | }, | 8727 | }, |
8728 | "typed-assert": { | ||
8729 | "version": "1.0.7", | ||
8730 | "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.7.tgz", | ||
8731 | "integrity": "sha512-TiBedJnGT3nNss19TyQ/JLwXy57pNDYBAja1gC0uLCKN4ps7FF3sSh71oImHDiKk8i5EuQ1G0CEOPeeA+ClWXQ==", | ||
8732 | "dev": true | ||
8733 | }, | ||
8722 | "unbox-primitive": { | 8734 | "unbox-primitive": { |
8723 | "version": "1.0.1", | 8735 | "version": "1.0.1", |
8724 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", | 8736 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", |
@@ -9448,6 +9460,15 @@ | |||
9448 | } | 9460 | } |
9449 | } | 9461 | } |
9450 | }, | 9462 | }, |
9463 | "webpack-subresource-integrity": { | ||
9464 | "version": "5.0.0-alpha.5", | ||
9465 | "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.0.0-alpha.5.tgz", | ||
9466 | "integrity": "sha512-bZVkt3W7wbvNXoM+vHNNTB9V6z0Xce1MJRcMeK7EwY0Nf4RpOxp8S5APRWKWDZX6ufxIZ9MZo8aISZRUcvO3uA==", | ||
9467 | "dev": true, | ||
9468 | "requires": { | ||
9469 | "typed-assert": "^1.0.4" | ||
9470 | } | ||
9471 | }, | ||
9451 | "websocket-driver": { | 9472 | "websocket-driver": { |
9452 | "version": "0.7.4", | 9473 | "version": "0.7.4", |
9453 | "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", | 9474 | "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", |
diff --git a/language-web/package.json b/language-web/package.json index f4813a49..7ae01946 100644 --- a/language-web/package.json +++ b/language-web/package.json | |||
@@ -22,6 +22,7 @@ | |||
22 | "@babel/core": "^7.14.6", | 22 | "@babel/core": "^7.14.6", |
23 | "@babel/preset-env": "^7.14.7", | 23 | "@babel/preset-env": "^7.14.7", |
24 | "babel-loader": "^8.2.2", | 24 | "babel-loader": "^8.2.2", |
25 | "before-build-webpack": "^0.2.11", | ||
25 | "css-loader": "^5.2.6", | 26 | "css-loader": "^5.2.6", |
26 | "file-loader": "^6.2.0", | 27 | "file-loader": "^6.2.0", |
27 | "html-webpack-plugin": "^5.3.2", | 28 | "html-webpack-plugin": "^5.3.2", |
@@ -32,7 +33,8 @@ | |||
32 | "style-loader": "^3.0.0", | 33 | "style-loader": "^3.0.0", |
33 | "webpack": "^5.41.0", | 34 | "webpack": "^5.41.0", |
34 | "webpack-cli": "^4.7.2", | 35 | "webpack-cli": "^4.7.2", |
35 | "webpack-dev-server": "^3.11.2" | 36 | "webpack-dev-server": "^3.11.2", |
37 | "webpack-subresource-integrity": "^5.0.0-alpha.5" | ||
36 | }, | 38 | }, |
37 | "dependencies": { | 39 | "dependencies": { |
38 | "codemirror": "^5.62.0", | 40 | "codemirror": "^5.62.0", |
diff --git a/language-web/webpack.config.js b/language-web/webpack.config.js index f047f6c6..385c1024 100644 --- a/language-web/webpack.config.js +++ b/language-web/webpack.config.js | |||
@@ -3,7 +3,8 @@ const path = require('path'); | |||
3 | 3 | ||
4 | const WebpackBeforeBuildPlugin = require('before-build-webpack'); | 4 | const WebpackBeforeBuildPlugin = require('before-build-webpack'); |
5 | const HtmlWebpackPlugin = require('html-webpack-plugin'); | 5 | const HtmlWebpackPlugin = require('html-webpack-plugin'); |
6 | const MiniCssExtractPlugin = require("mini-css-extract-plugin"); | 6 | const MiniCssExtractPlugin = require('mini-css-extract-plugin'); |
7 | const { SubresourceIntegrityPlugin } = require('webpack-subresource-integrity'); | ||
7 | 8 | ||
8 | const currentNodeEnv = process.env.NODE_ENV || 'development'; | 9 | const currentNodeEnv = process.env.NODE_ENV || 'development'; |
9 | const devMode = currentNodeEnv !== 'production'; | 10 | const devMode = currentNodeEnv !== 'production'; |
@@ -28,6 +29,7 @@ module.exports = { | |||
28 | publicPath: '/', | 29 | publicPath: '/', |
29 | filename: devMode ? '[name].js' : '[contenthash].js', | 30 | filename: devMode ? '[name].js' : '[contenthash].js', |
30 | chunkFilename: devMode ? '[id].js' : '[contenthash].js', | 31 | chunkFilename: devMode ? '[id].js' : '[contenthash].js', |
32 | crossOriginLoading: 'anonymous', | ||
31 | }, | 33 | }, |
32 | module: { | 34 | module: { |
33 | rules: [ | 35 | rules: [ |
@@ -103,6 +105,7 @@ module.exports = { | |||
103 | filename: '[contenthash].css', | 105 | filename: '[contenthash].css', |
104 | chunkFilename: '[contenthash].css', | 106 | chunkFilename: '[contenthash].css', |
105 | }), | 107 | }), |
108 | new SubresourceIntegrityPlugin(), | ||
106 | new HtmlWebpackPlugin({ | 109 | new HtmlWebpackPlugin({ |
107 | template: 'src/main/html/index.html', | 110 | template: 'src/main/html/index.html', |
108 | minify: devMode ? false : { | 111 | minify: devMode ? false : { |