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 會(huì)是下面其中一個(gè):
// START — 監(jiān)聽器正在啟動(dòng)(重啟)
// BUNDLE_START — 構(gòu)建單個(gè)文件束
// BUNDLE_END — 完成文件束構(gòu)建
// END — 完成所有文件束構(gòu)建
// ERROR — 構(gòu)建時(shí)遇到錯(cuò)誤
// FATAL — 遇到無(wú)可修復(fù)的錯(cuò)誤
});
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>標(biāo)簽)哥桥,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'], // 外鏈(本項(xiàng)目如要依賴其他第三方的包血淌,就可以使用這個(gè)屬性)
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"
]
}