跳到主要内容

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

· 阅读需 1 分钟

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

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

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

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

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

rollup.config.js
importreplacefrom'@rollup/plugin-replace';

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

AltStyle によって変換されたページ (->オリジナル) /