forked from LucienLee/vue-tag-input
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpoi.config.js
47 lines (41 loc) · 1 KB
/
poi.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
const componentName = 'VueTagInput';
const camelToKebab = str => str
.replace(/(^[A-Z])/, ([first]) => first.toLowerCase())
.replace(/([A-Z])/g, ([letter]) => `-${letter.toLowerCase()}`);
module.exports = (options = {}) => {
const { mode, component } = options;
const basic = {
};
if (mode === 'development') {
return {
...basic,
entry: './index.js',
};
}
if (mode === 'test') {
return {
...basic,
presets: [
require('poi-preset-transform-test-files')(),
]
}
}
// production, build as component
return {
...basic,
entry: {
[`${component ? '' : 'umd/'}${camelToKebab(componentName)}`]: `./src/${componentName}.vue`
},
filename: {
js: '[name].js',
css: '[name].css'
},
presets: [
require('poi-preset-eslint')(),
],
html: false,
extractCSS: !component,
moduleName: componentName,
transformModules: ['string-width', 'strip-ansi', 'ansi-regex', 'is-fullwidth-code-point'],
};
};