1 | const babel = require('rollup-plugin-babel');
|
2 | const json = require('rollup-plugin-json');
|
3 | const commonjs = require('rollup-plugin-commonjs');
|
4 | const resolve = require('rollup-plugin-node-resolve');
|
5 | const fs = require('fs');
|
6 | const path = require('path');
|
7 | const sass = require('node-sass');
|
8 |
|
9 | const resolveFile = (file, dir) => {
|
10 | return path.join(__dirname, dir, file);
|
11 | };
|
12 |
|
13 | const isDev = process.env.NODE_ENV === 'development';
|
14 |
|
15 | const inputs = ['web.js', 'editor.js', 'mobile.js', 'webview.js'];
|
16 |
|
17 | const cssFile = resolveFile('article.scss', 'css');
|
18 |
|
19 | sassCompiler(cssFile)
|
20 |
|
21 | if (isDev) {
|
22 | fs.watchFile(cssFile, function() {
|
23 | sassCompiler(cssFile)
|
24 | });
|
25 | }
|
26 |
|
27 | function sassCompiler(file) {
|
28 | console.log('样式文件编译中...')
|
29 | const cssResult = sass.renderSync({
|
30 | file,
|
31 | outputStyle: 'compressed'
|
32 | });
|
33 | fs.writeFileSync('./dist/article.css', cssResult.css, 'utf-8');
|
34 | console.log('样式文件编译完成')
|
35 | }
|
36 |
|
37 | export default inputs.map(input => ({
|
38 | input: resolveFile(input, 'entry'),
|
39 | output: {
|
40 | file: resolveFile(input, 'dist'),
|
41 | name: 'rich',
|
42 | format: 'umd'
|
43 | },
|
44 | plugins: [
|
45 | resolve(),
|
46 | commonjs(),
|
47 | babel({ exclude: 'node_modules/**' }),
|
48 | json()
|
49 | ]
|
50 | }));
|