我正在尝试使用带有express的webpack但遇到了一些错误。
这是我目前收到的错误:Error: Cannot resolve module 'json-loader'
package.json :(两者都是json loader,webpack和config等)
"devDependencies": {
"json-loader": "^0.5.4",
"webpack": "^1.13.2",
"webpack-dev-server": "^1.15.1"
},
"dependencies": {
"express": "^4.14.0",
"firebase": "^3.3.0",
"json-loader": "^0.5.4",
"webpack-config": "^6.1.2"
}
webpack.config.js:
module.exports = {
entry: "./app.js",
target: 'node',
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{ test: /\.json$/, loader: 'json-loader'},
]
}
}
从上面可以看出,我在那里有json loader并且有条目指向我的app.js看起来像这样:
var express = require('express');
var app = express();
var firebase = require('firebase');
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
app.get('/welcome', function (req, res) {
res.sendFile(__dirname + '/welcome.html');
});
我做错了什么?即如何摆脱错误并使用webpack明确工作?
答案 0 :(得分:0)
我遇到了类似的问题,这就是我修复它的方法。请注意,此解决方案可能无法修复@ Waterman1的问题,除非我猜我们没有看到整个webpack.config.js
是正确的。
(1)
安装/添加到package.json
json-loader
(2)
编辑webpackage.json.js
改变(这可能会略有不同)
module: {
preLoaders: [
{
test: /\.js|\.jsx$/,
loaders: ['eslint-loader'],
exclude: ['node_modules']
}
],
loaders: [
{
test: /\.js|\.jsx$/,
loaders: ['babel'],
include: path.join(__dirname, 'src')
}
]
}
到
module: {
preLoaders: [
{
test: /\.js|\.jsx$/,
loaders: ['eslint-loader'],
exclude: ['node_modules',/\.json$/]
}
],
loaders: [
{
test: /\.json$/,
loader: "json-loader"
},
{
test: /\.js|\.jsx$/,
loaders: ['babel'],
include: path.join(__dirname, 'src')
}
]
}
特别注意到这些变化:
loader-json
添加到loaders
/\.json$/
exclude
添加到preLoaders