错误:使用带有express的webpack时无法解析模块'Json-loader'

时间:2016-09-07 07:47:10

标签: javascript json express webpack

我正在尝试使用带有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明确工作?

1 个答案:

答案 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