【发布时间】:2018-10-08 10:16:03
【问题描述】:
我的项目中出现以下错误:
ModuleBuildError: Module build failed (from ./node_modules/next/dist/build/webpack/loaders/next-babel-loader.js):
TypeError: Cannot read property 'local' of undefined`
Here is my next.config.json
`module.exports = {
webpack: (config, { dev }) => {
config.module.rules.push(
{
test: /\.(less)/,
loader: 'emit-file-loader',
options: {
name: 'dist/[path][name].[ext]'
}
},
{
test: /\.less$/,
use: [
{ loader: 'babel-loader' },
{ loader: 'raw-loader' },
{ loader: 'less-loader', options: { javascriptEnabled: true } }
]
},
{
test: /\.css$/,
exclude: /node_modules/,
loader: [
'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]',
'postcss-loader'
]
}
);
return config;
}
};
还有我的 .babelrc 文件:
{
"plugins": [
["inline-import", { "extensions": [".css"] }],
["import", { "libraryName": "antd" }]
],
"presets": ["next/babel"],
"ignore": []
}
我认为导入包时会出现问题: 如果我以这种方式导入包,它可以工作: 从包中导入模块 但是,如果我以这种方式导入包,我会收到描述的错误: 从包/子模块导入模块 为什么会这样?我怀疑问题出在 babel-loader 但我不知道如何解决它。
谢谢
【问题讨论】:
-
您要加载
.less文件吗? -
不,我成功加载了
.less文件。问题是当我尝试从包中的目录导入模块时。会不会是 babel-plugin-import 的问题? -
你能给我看一个“从包内目录导入模块”的例子吗?
-
import IntlTelInput from 'react-intl-tel-input';// 当我只添加这个时这有效 // 但是当我导入这样的模块时它停止工作import 'file-loader?name=libphonenumber.js!./libphonenumber.js';import './main.css'; -
什么是 libphonenumber.js?它是一些 npm 模块吗?
标签: reactjs babeljs next.js babel-loader