mirror of
https://github.com/sakitam-fdd/maptalks.plot.git
synced 2025-12-08 20:35:49 +00:00
100 lines
2.5 KiB
JavaScript
100 lines
2.5 KiB
JavaScript
// Config file for running Rollup in "normal" mode (non-watch)
|
|
|
|
const path = require('path');
|
|
const babel = require('rollup-plugin-babel'); // ES2015 tran
|
|
const cjs = require('rollup-plugin-commonjs');
|
|
const nodeResolve = require('rollup-plugin-node-resolve');
|
|
const replace = require('rollup-plugin-replace');
|
|
const eslint = require('rollup-plugin-eslint');
|
|
const friendlyFormatter = require("eslint-friendly-formatter");
|
|
const _package = require('../package.json');
|
|
const eslintConfig = require('../.eslintrc');
|
|
const time = new Date();
|
|
const year = time.getFullYear();
|
|
const banner = `/*!\n * author: ${_package.author}
|
|
* ${_package.name} v${_package.version}
|
|
* build-time: ${year}-${time.getMonth()}-${time.getDay()} ${time.getHours()}:${time.getMinutes()}
|
|
* LICENSE: ${_package.license}
|
|
* (c) 2017-${year} ${_package.homepage}\n */`;
|
|
const resolve = _path => path.resolve(__dirname, '../', _path)
|
|
|
|
const genConfig = (opts) => {
|
|
const config = {
|
|
input: {
|
|
input: resolve('src/index.js'),
|
|
plugins: [
|
|
eslint(Object.assign({}, eslintConfig, {
|
|
formatter: friendlyFormatter,
|
|
exclude: [
|
|
resolve('package.json'),
|
|
resolve('node_modules/**')
|
|
]
|
|
})),
|
|
babel({
|
|
exclude: 'node_modules/**' // only transpile our source code
|
|
}),
|
|
nodeResolve({
|
|
jsnext: true,
|
|
main: true,
|
|
browser: true
|
|
}),
|
|
cjs()
|
|
],
|
|
external: ['maptalks']
|
|
},
|
|
output: {
|
|
file: opts.file,
|
|
format: opts.format,
|
|
banner,
|
|
name: _package.namespace,
|
|
globals: {
|
|
maptalks: 'maptalks'
|
|
}
|
|
}
|
|
}
|
|
if (opts.env) {
|
|
config.input.plugins.unshift(replace({
|
|
'process.env.NODE_ENV': JSON.stringify(opts.env)
|
|
}))
|
|
}
|
|
return config
|
|
}
|
|
|
|
const handleMinEsm = name => {
|
|
if (typeof name === 'string') {
|
|
let arr_ = name.split('.')
|
|
let arrTemp = []
|
|
arr_.forEach((item, index) => {
|
|
if (index < arr_.length - 1) {
|
|
arrTemp.push(item)
|
|
} else {
|
|
arrTemp.push('min')
|
|
arrTemp.push(item)
|
|
}
|
|
})
|
|
return arrTemp.join('.')
|
|
}
|
|
}
|
|
|
|
module.exports = [
|
|
{
|
|
file: resolve(_package.unpkg),
|
|
format: 'umd',
|
|
sourceMap: true,
|
|
env: 'development'
|
|
},
|
|
{
|
|
file: resolve(handleMinEsm(_package.unpkg)),
|
|
format: 'umd',
|
|
env: 'production'
|
|
},
|
|
{
|
|
file: resolve(_package.main),
|
|
format: 'cjs'
|
|
},
|
|
{
|
|
file: resolve(_package.module),
|
|
format: 'es'
|
|
}
|
|
].map(genConfig)
|