模块构build失败:SyntaxError:在JSON位置0的意外的标记'

我在这里有一个webpackconfiguration,我想添加一个答案moment-timezone 我应该如何使用webpack的瞬时时区? ,导致我到Webpack – 错误:无法定义“查询”和多个加载器列表中的加载器

 var webpack = require('webpack'); module.exports = { //devtool: 'inline-source-map', entry: [ 'webpack-hot-middleware/client', './client/main.js' ], output: { path: require("path").resolve('./assets'), filename: 'bundle.js', publicPath: '/' }, plugins: [ new webpack.HotModuleReplacementPlugin() ], externals: { jquery: 'var jQuery' }, module: { loaders: [ { test: /\.jsx?$/, loaders: ['json-loader', 'babel-loader?presets[]=react,presets[]=es2015,presets[]=react-hmre'], exclude: /node_modules/ } ] } }; 

我目前的尝试是以上。

你告诉webpack把你的JavaScript文件传给json-loader 。 但是因为JavaScript文件不是有效的JSON,所以会出现第一个字符已经有一个意外标记的错误。

 { test: /\.jsx?$/, loaders: ['json-loader', 'babel-loader?presets[]=react,presets[]=es2015,presets[]=react-hmre'], exclude: /node_modules/ } 

所以你需要从.jsx?删除json-loader .jsx? 组态。 另外json-loader在webpack 2中不再需要,JSON文件应该可以直接使用。

您可以将module部分更新为:

 module: { rules: [ { test: /\.jsx?$/, loader: 'babel-loader?presets[]=react,presets[]=es2015,presets[]=react-hmre', exclude: /node_modules/ } ] } 

但是,如果它不应该工作,你将不得不添加json-loader.json结尾的文件:

 { test: /\.json$/, loader: 'json-loader' }