annotate client/vue.config.js @ 23:c1ef0be0ae3d

Improve build chain In order to improve the build, there is the need to include external asset during build time. The variable `VUE_APP_VENDOR_IMG_PATH` defines the source folder of the vendor images. The destination folder is /web/img/. To improve readability comments to .env.sample variables were added.
author Thomas Junk <thomas.junk@intevation.de>
date Thu, 21 Jun 2018 13:39:01 +0200
parents d16f799e0469
children 71970f03c9e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
1 var CopyWebpackPlugin = require("copy-webpack-plugin");
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
2
3
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
3 module.exports = {
21
d16f799e0469 Configure Webpack to put its output to web-folder
Thomas Junk <thomas.junk@intevation.de>
parents: 13
diff changeset
4 outputDir: "../web",
23
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
5 chainWebpack: config => {
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
6 let vendorImgPath = process.env.VUE_APP_VENDOR_IMG_PATH;
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
7 if (!vendorImgPath) return;
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
8 config
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
9 .plugin("CopyWebpackPlugin")
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
10 .use(CopyWebpackPlugin, [[{ from: vendorImgPath, to: "img" }]], {
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
11 copyUnmodified: true
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
12 });
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
13 },
3
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
14 devServer: {
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
15 proxy: {
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
16 "/api/*": {
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
17 target: "http://localhost:8000",
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
18 secure: false
11
e0b5dd98665e current frontend with asset server configured
Thomas Junk <thomas.junk@intevation.de>
parents: 3
diff changeset
19 },
23
c1ef0be0ae3d Improve build chain
Thomas Junk <thomas.junk@intevation.de>
parents: 21
diff changeset
20 "/img/*": {
11
e0b5dd98665e current frontend with asset server configured
Thomas Junk <thomas.junk@intevation.de>
parents: 3
diff changeset
21 target: "http://localhost:5000",
e0b5dd98665e current frontend with asset server configured
Thomas Junk <thomas.junk@intevation.de>
parents: 3
diff changeset
22 secure: false
3
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
23 }
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
24 }
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
25 }
1597506a2241 merge with vue-cli
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
26 };