1

我正在尝试用webpackand组合一个简单的项目react-router。当我不使用时react-router,一切正常。这是我的代码:

/** @jsx React.DOM */

var React = require('react');

React.renderComponent(
        <h1>Hello World</h1>,
        document.body
      );

这是我的重要部分webpack.config.js

module: {
        loaders: [
        { test: /\.css$/, loader: 'style!css'},
        { test: /\.js$/, loader: 'jsx-loader' }
        ]
    }

但是当我添加require('react-router')到我的js文件时,我收到了这个错误:

ERROR in (webpack)/~/node-libs-browser/~/buffer/index.js
Module not found: Error: Cannot resolve module 'jsx-loader' in /usr/local/lib/node_modules/webpack/node_modules/node-libs-browser/node_modules/buffer
 @ (webpack)/~/node-libs-browser/~/buffer/index.js 1:0-106

有没有人看到这个错误?我究竟做错了什么?

4

4 回答 4

5

你在用webpack-dev-server吗?当我添加react-router到 webpack 构建项目时,我得到了这个确切的消息,但只是在尝试使用全局安装的webpack-dev-server. 将它添加到package.json本地安装并为我修复它。

于 2014-12-18T01:11:56.430 回答
5

您是否在全局而不是本地安装了 webpack?加载器解析类似模块,因此它试图加载jsx-loader相对于它所应用的资源。因为看起来你没有安装本地版本(你应该总是有一个),它没有找到它,因此它正在寻找/usr/local/lib/node_modules/webpack

有几种方法可以解决这个问题,最简单的方法是安装本地版本的 webpack。或者使用类似这样的resolveLoader.rootnode_modules来添加绝对路径:

(resolveLoader: { root: path.join(__dirname, "node_modules") })

(有关更多信息,请参阅模块加载器)

于 2014-10-05T09:18:46.953 回答
3

你真的跑了npm install --save-dev jsx-loader吗?

如果没有安装,就找不到了。。。

于 2014-10-02T16:41:33.203 回答
0
sudo npm update

它为我解决了问题

于 2017-03-28T18:58:45.207 回答