webpack 压缩打包后 require is not defined
时间: 2023-08-28 16:04:44 浏览: 188
这个问题可能是因为在压缩打包后,一些代码被删除或重命名导致的。具体来说,如果你在代码中使用了 CommonJS 的 `require` 函数,而没有正确地配置 webpack 去处理这些函数,那么在压缩打包后,这些函数就会被删除或重命名,从而导致 `require is not defined` 的错误。
要解决这个问题,你可以尝试以下几个方法:
1. 使用 webpack 的 `ProvidePlugin` 插件,在打包时自动加载 `require` 函数:
```javascript
// webpack.config.js
const webpack = require('webpack');
module.exports = {
// ...
plugins: [
new webpack.ProvidePlugin({
require: 'require'
})
]
};
```
2. 使用 webpack 的 `exports-loader` 模块加载器,手动引入 `require` 函数:
```javascript
// yourModule.js
var requireFunc = require("exports-loader?require!./yourScript.js");
// yourScript.js
var yourModule = require('./yourModule.js');
```
3. 在代码中使用 ES6 的 `import` 语句代替 `require` 函数,这样可以避免一些打包后的问题:
```javascript
// yourScript.js
import yourModule from './yourModule.js';
```
以上方法中,第三种方法是比较推荐的,因为使用 ES6 的 `import` 语句可以更好地避免一些打包后的问题。不过如果你的项目中已经大量使用了 `require` 函数,那么使用前两种方法也是可行的。
阅读全文