-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrollup.config.js
39 lines (36 loc) · 1.61 KB
/
rollup.config.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
import clear from 'rollup-plugin-clear'
import screeps from 'rollup-plugin-screeps'
import copy from 'rollup-plugin-copy'
import resolve from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
let config
// 根据指定的目标获取对应的配置项
if (!process.env.DEST) {
console.log("未指定目标, 代码将被编译但不会上传")
} else if (!(config = require("./.secret.json")[process.env.DEST])) {
throw new Error("无效目标,请检查 secret.json 中是否包含对应配置")
}
// 根据指定的配置决定是上传还是复制到文件夹
const pluginDeploy = config && config.copyPath ? // 复制到指定路径
copy({
targets: [{
src: 'dist/main.js', dest: config.copyPath
}, {
src: 'dist/main.js.map',
dest: config.copyPath,
rename: name => name + '.map.js',
transform: contents => `module.exports = ${contents.toString()};`
}], hook: 'writeBundle', verbose: true
}) : // 更新 .map 到 .map.js 并上传
screeps({config, dryRun: !config})
export default {
input: 'src/main.js', output: {
file: 'dist/main.js', format: 'cjs', sourcemap: true
}, plugins: [// 清除上次编译成果
clear({targets: ["dist"]}), // 执行上传或者复制
// 打包依赖
resolve(),
// 模块化依赖
commonjs(),
pluginDeploy]
};