这里时的WebPack错误是打破了简单的测试案例:导入JSON文件
首先,保存从节点JSON文件:
const fs = require('fs')
let test = {
foo: [
{ 1: 'a'},
{ 2: 'b'}
]
};
fs.writeFileSync('./test.json', JSON.stringify(test), 'utf-8');
然后,尝试导入此JSON到一个js文件是的WebPack处理(我用的是最新版本的WebPack的,3.4.1):
import test from './test.json';
console.log(test);
这失败,出现以下错误:
ERROR in ./test.json
Module build failed: SyntaxError: Unexpected token, expected ; (1:6)
> 1 | {"foo":[{"1":"a"},{"2":"b"}]}
控制台输出指向的冒犯角色是“foo”后面的冒号。
我的WebPack配置很简单,只有这些module
选项:
module: {
rules: [
{
test: /\.js/,
exclude: [ path.resolve(__dirname, 'node_modules') ],
loader: 'babel-loader'
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
}
]
},
困惑,我打开了JSON加载页面,告诉我说:
Since webpack >= v2.0.0, importing of JSON files will work by default.
由于我使用的WebPack v。3.4.1,我认为json-loader是不必要的。尽管如此,出于绝望,我增加了以下规则的WebPack配置的模块领域:
{
test: /\.json/,
loader: 'json-loader'
}
这其实工作! json文件被加载,错误消失。
所以我的问题是:是我做错了Webpack试图导入json文件,或者是最新的Webpack莫名关于导入json文件?
哎唷!如此愚蠢的做我的正则表达式错误!当然你是对的 - 当我修正正则表达式时,错误消失了。感谢您的奇妙详细的答案! – azangru