const rollup = require('rollup');
const config = require('./config.js');
const outputOptions = config.output;
async function build () {
const bundel = await rollup.rollup(config)
const { code, map } = await bundel.generate(outputOptions)
await bundel.write(outputOptions)
}
const watcher = rollup.watch(config);
watcher.on('event', event => {
console.log('event', event.code);
build();
// event.code 会是下面其中一个:
// START — 监听器正在启动(重启)
// BUNDLE_START — 构建单个文件束
// BUNDLE_END — 完成文件束构建
// END — 完成所有文件束构建
// ERROR — 构建时遇到错误
// FATAL — 遇到无可修复的错误
});
consfig.js
const rollup = require('rollup');
const json = require('rollup-plugin-json');
const resolve = require('rollup-plugin-node-resolve');
const babel = require('rollup-plugin-babel');
const eslint = require('rollup-plugin-eslint').eslint;
const outputOptions = {
file: 'dist/echarts.js', // 文件输出目录
format: 'umd', // 格式,amd(异步模块定义),cjs(commonjs),es(将软件包保存为es模块文件),iife(适合作为<script>标签),umd(以amd、cjs、iife为一体)
name: 'echarts', // 生成包名称,代表你的iife/umd包
sourcemap: false,
banner: '/* my-library version */',
footer: '/* follow me on Twitter! @rich_harris */',
intro: 'var ENVIRONMENT = "production";',
globals: {
jquery: 'Window.jQuery'
}
}
module.exports = {
input: 'src/chart.js', // 文件输入
output: outputOptions,
plugins: [
json(),
resolve(),
eslint(),
babel({
exclude: 'node_modules/**'
})
],
external: ['jquery'], // 外链(本项目如要依赖其他第三方的包,就可以使用这个属性)
watch: {
include: 'src/**',
exclude: 'node_modules/**'
}
}
.eslintrc.js
module.exports = {
extends: "standard",
env: {
"browser": true
},
rules: {
"semi": ["error", "always"]
}
};
.eslintignore
build/*
dist/*
.babelrc
{
"presets": [
[
"@babel/preset-env"
]
],
"plugins": [
"@babel/plugin-external-helpers"
]
}
网友评论