我正在玩新发布的第二版Webpack。我收到以下错误消息。
无效的配置对象...这些属性有效:
object {amd?,bail?,...,devtool?, entry ,...,output?,performance?,plugins?,profile?,recordsInputPath?,recordsOutputPath?,recordsPath?,解决?,...}
我也遇到了以下错误。
configuration.resolve.extensions [0]不应为空。
这很令人困惑,因为在第一条消息中,问号暗示 resolve 是可选的(与其他突出显示的选项条目相对应)是必需的,如缺少问号所示。)
在这种情况下,我是否不知道问号的含义?这是一个错字吗?我对完全不同的东西感到困惑吗?
答案 0 :(得分:2)
我打算回答这个问题因为我认为我已经解决了你的真正问题:
新的webpack文档:https://webpack.js.org/
答案 1 :(得分:1)
@ thesublimeobject的答案链接到正确的文档。我遇到了同样的问题并按照他们的建议解决了问题。我以为我通过示例的方式贡献了一些我的webpack配置。
我必须添加以下resolve
块:
resolve: {
extensions: ['.js', '.jsx', '.json']
}
我还必须更新我的模块定义以捕获.JSX文件:
module: {
rules: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: "babel-loader"
}]
},
注意我已经添加了一个可选的' x'到正则表达式文件扩展名匹配器。这给了我一个配置,允许我将文件以" .jsx"结尾,但导入时没有识别扩展名。
import Widget from './components/Widget';
虽然不明确,但我认为这提高了可读性。它还允许SublimeText始终对包含JSX的文件使用Babel's JavaScript (Babel) code highlighting。
根据文档,解析器现在具有以下默认值:
resolve: {
enforceExtension: false,
extensions: ['.js', '.json']
}
这允许使用任一指定扩展名导入文件或不扩展名。如果您提供新的extensions
集合,它将覆盖默认值。因此,要保留默认值和新要求,您需要明确包含所有默认值。