Module "XXX" has been externalized for browser compatibility and ...

2,704 阅读1分钟

浏览器报错信息: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')
  },
},
// ...