-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup-plugins.js
66 lines (55 loc) · 1.56 KB
/
rollup-plugins.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
const argv = require('yargs-parser')(process.argv.slice(2));
const globals = require('./scripts/rollup-injects');
const include = require('rollup-plugin-includepaths');
const babel = require('rollup-plugin-babel');
const babelPlugins = require('./scripts/babel-plugins');
const stylus = require('./scripts/rollup-plugin-stylus');
const svelte = require('rollup-plugin-svelte');
const inject = require('rollup-plugin-inject');
const { lint, lintText } = require('./scripts/eslint');
const isWatching = argv.w || argv.watch;
const getPluginsWithShared = sharedDir => baseDir => {
const paths = [sharedDir, baseDir];
lint(paths);
// Order of plugins is important:
// svelte needs to be before babel so that by the time
// babel is run, svelte has become JS
return [
include({ paths }),
svelte({
extensions: '.svelte',
preprocess: {
style: ({ content }) => stylus.transform(content),
script: ({ content }) => {
setTimeout(() => lintText(content));
return content;
}
}
}),
babel({
include: ['**/*.js', '**/*.svelte'],
plugins: babelPlugins
}),
inject(globals)
];
};
const pluginsWithDir = getPluginsWithShared('node_modules/ui-common/src');
const rollupCommon = {
treeshake: {
propertyReadSideEffects: false
}
};
if (isWatching) {
rollupCommon.watch = {
// https://github.com/rollup/rollup-watch/issues/22
exclude: 'node_modules/**',
chokidar: true,
clearScreen: false
};
}
module.exports = {
stylus,
isWatching,
rollupCommon,
pluginsWithDir
};