-
Notifications
You must be signed in to change notification settings - Fork 10
/
vue.config.js
50 lines (46 loc) · 1.85 KB
/
vue.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const os = require("os");
const path = require("path");
const outputDir = path.resolve(process.env.IS_DEMO ? "dist-demo" : "dist");
const packageJson = require("./package");
const BANK_CARD_VUE_COMPONENT_VERSION = packageJson.version;
const DEFAULT_BANK_CARD_VUE_COMPONENT_IMAGES_BASE_PATH = `//cdn.jsdelivr.net/gh/avto-dev/bank-card-vue-component@${BANK_CARD_VUE_COMPONENT_VERSION}/public/images/`;
let buildConfig = {
publicPath: "",
productionSourceMap: false,
outputDir: outputDir,
parallel: os.cpus().length > 1,
chainWebpack: config => {
if (process.env.IS_DEMO) {
// If building demo app we need to change index.html template
config.plugin("html").tap(args => {
args[0].template = path.resolve("demo/index.html");
return args;
});
}
// Copy images from ./public to ./dist and ./dist-demo
config.plugin("copy").use(require("copy-webpack-plugin"), [
[
{
from: path.resolve("./public/images"),
to: path.resolve(outputDir, "images"),
toType: "dir",
ignore: [".DS_Store"]
}
]
]);
// Defining env variables
config.plugin("define").tap(definitions => {
definitions[0]["process.env"] = Object.assign(
definitions[0]["process.env"],
{
BANK_CARD_VUE_COMPONENT_IMAGES_BASE_PATH:
process.env.BANK_CARD_VUE_COMPONENT_IMAGES_BASE_PATH ||
`"${DEFAULT_BANK_CARD_VUE_COMPONENT_IMAGES_BASE_PATH}"`,
BANK_CARD_VUE_COMPONENT_VERSION: `"${BANK_CARD_VUE_COMPONENT_VERSION}"`
}
);
return definitions;
});
}
};
module.exports = buildConfig;