【发布时间】:2016-08-13 19:19:37
【问题描述】:
我正在尝试为我的 reactjs 应用程序的状态加载 JSON 文件,但 webpack 不断抛出此错误:
ERROR in ./src/data/questions.json
Module parse failed: C:\Users\[...]\myApp\src\data\questions.json
Unexpected token (2:9)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:9)
...
JSON 文件是有效的,我用的是 webpack 的 json-loader,所以不确定是什么问题。
这是我的webpack.config.json 文件:
module.exports = {
entry: __dirname + '/src/index.js',
output: {
filename: 'bundle.js',
path: __dirname + '/dist/js'
},
cache: true,
debug: true,
devtool: 'source-map',
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /(node_modules|\.c9)/,
loader: 'babel',
query: {
presets: ['react', 'es2015', 'stage-0']
}
}, {
test: /\.json$/,
loader: 'json-loader'
}]
}
};
这就是我导入 JSON 文件的方式:
const quizes = [
require('./data/questions.json')
];
如果我将上面的行更改为:
const quizes = [
require('json!./data/questions.json')
];
我得到一个不同的错误:
ERROR in ./~/json-loader!./src/data/questions.json
Module build failed: SyntaxError: Unexpected token m
at Object.parse (native)
at Object.module.exports (C:\Users\[...]\myApp\node_modules\json-loader\index.js:7:48)
更奇怪的是,使用上述方法(json! 前缀),立即抛出错误(在初始构建期间)。但是,如果我只是将它留在 webpack 配置加载器中,则初始构建完成时不会出错,但后续构建会抛出错误。
尽管如此,我的应用大部分时间仍然可以运行。这是怎么回事?
【问题讨论】:
标签: webpack