跳到主要内容

解决 Rollup 打包在浏览器报错 ReferenceError: process is not defined

· 阅读需 1 分钟

Rollup 在打包后,在浏览器运行时报错: ReferenceError: process is not defined

通过字面意思可以得知 process 变量是在 node 环境中的变量,浏览器肯定不行,我们可以通过在加载代码之前添加一段 hack 脚本

<script>
var process = {
env: {
NODE_ENV: 'production'
}
};
</script>
<script src="你的库的src"></script>

但是这样很不优雅,如果别人使用你的库直接报错肯定也不行。

同样可以在 rollup 配置文件中通过 @rollup/plugin-replace 插件去处理

rollup.config.js
import replace from '@rollup/plugin-replace';

export default {
// ...
plugins: [
// ...
replace({
'process.env.NODE_ENV': JSON.stringify('production')
})
]
};