我以为Webpack+Babel只会转换应用程序代码,不会转换用于Webpack构建的代码。然而,它似乎正在转换来自css-loader
、mini-css-extract-plugin
等的代码,这导致了以下错误:
ERROR in ./styles/main.scss
Module build failed (from ../node_modules/mini-css-extract-plugin/dist/loader.js):
TypeError: __webpack_require__(...) is not a function
如果我将以下内容添加到exclude
中,这个错误就会被修复:
module: {
rules: [
{
test: /\.(j|t)sx?$/,
include: [APP_ROOT, path.resolve('./node_modules')],
exclude: [
path.resolve('./node_modules/mini-css-extract-plugin'),
path.resolve('./node_modules/css-loader'),
],
use: [
'babel-loader',
],
},
...
我认为不需要这个,因为 Babel 不应该对 Webpack 构建过程中使用的包进行转译。我将node_modules
添加到include
中,因为一些包使用的代码在旧版浏览器中无法正常工作。