2 Star 0 Fork 0

tommyrunner / web-loading

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
rollup.config.js 2.66 KB
一键复制 编辑 原始数据 按行查看 历史
import { defineConfig } from 'rollup'
import { join } from 'path'
import { terser as rollupTerser } from 'rollup-plugin-terser'
import rollupJSON from '@rollup/plugin-json'
import rollupCommonJS from '@rollup/plugin-commonjs'
import rollupReplace from '@rollup/plugin-replace'
import rollupNodeResolve from '@rollup/plugin-node-resolve'
/**
* @typedef {'umd' | 'cjs' | 'esm-bundler'} OutputFormat
*/
/**
* @param {OutputFormat} format
* @param {boolean} minify
* @returns {string}
*/
function replaceProcessNodeEnv(format, minify) {
switch (format) {
case 'umd':
case 'cjs':
return minify ? '"production"' : '"development"'
case 'esm-bundler':
return 'process.env.NODE_ENV'
default:
throw new TypeError(`Unsupport format: ${format}`)
}
}
/**
* @param {OutputFormat} format
* @param {boolean} minify
* @returns {string}
*/
function replaceDev(format, minify) {
switch (format) {
case 'umd':
case 'cjs':
return minify ? 'false' : 'true'
case 'esm-bundler':
return 'process.env.NODE_ENV !== "production"'
default:
throw new TypeError(`Unsupport format: ${format}`)
}
}
/**
* @param {OutputFormat} format
* @param {boolean} minify
* @returns {import('rollup').RollupOptions}
*/
function createOption(format, minify) {
const name = `web-loading${format === 'umd' ? '' : `.${format}`}${minify ? '.min' : ''}.js`
return {
input: join(__dirname, 'lib/index.js'),
plugins: [
rollupNodeResolve({
mainFields: ['browser', 'module', 'main']
}),
rollupJSON(),
rollupReplace({
preventAssignment: true,
'process.env.NODE_ENV': replaceProcessNodeEnv(format, minify),
__DEV__: replaceDev(format, minify),
__VERSION__: JSON.stringify(require('./package.json').version)
}),
rollupCommonJS({
transformMixedEsModules: true,
extensions: ['.js', 'jsx', '.ts', '.tsx']
}),
{
name: 'typescript-class-pure',
transform(code) {
return code.replace(/\/\*\* @class \*\/ \(function/g, '/*#__PURE__*/ (function')
}
},
...(minify
? [
rollupTerser({
output: {
comments: false
},
module: format === 'esm-bundler'
})
]
: [])
],
output: {
file: join(__dirname, 'dist', name),
format: format === 'esm-bundler' ? 'esm' : format,
name: 'rustOption',
exports: 'named'
}
}
}
export default defineConfig([
createOption('umd', false),
createOption('umd', true),
createOption('cjs', false),
createOption('cjs', true),
createOption('esm-bundler', false)
])
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/tommyrunner/web-loading.git
git@gitee.com:tommyrunner/web-loading.git
tommyrunner
web-loading
web-loading
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891