浏览器报错信息:Module "XXX" has been externalized for browser compatibility and cannot be accessed in client code.
报错原因:项目的业务代码中使用nodejs的模块,例如path、stream等,需要引入对应的浏览器兼容包。
比如:
// 使用了path,安装path-browserify
npm i path-browserify
// 使用了stream,安装stream-browserify
npm i stream-browserify
然后在项目中修改配置
Vue2
// vue.config.js
// ...
configureWebpack: {
resolve: {
alias:{...},
fallback:{
path: require.resolve('path-browserify'),
stream: require.resolve('stream-browserify'),
},
},
},
// ...
Vite
// vite.config.js
// ...
resolve: {
alias: {
path: require.resolve('path-browserify'),
stream:require.resolve('stream-browserify')
},
},
// ...