Webpack 正在全局目录中寻找反应

Webpack is looking for react in global directory

这是我的 webpack-dev-server 配置

module.exports = {
  entry: './main.js',
  output: {
    path: './',
    filename: 'bundle.js'
  },
  devServer: {
    inline: true,
    port: 9000
  },
  module: {
    loaders: [{
      test: /\.js$/,
      exclude: '/(node_modules)/',
      loader: 'babel',
      query: {
        presets: ['es2015', 'react']
      }
    }]
  }
};

为什么我运行服务器

会出现以下错误

ERROR in (webpack)-dev-server/~/strip-ansi/index.js Module build failed: Error: Couldn't find preset "react" relative to directory "/Users/ecco/.nvm/versions/node/v5.4.0/lib/node_modules/webpack-dev-server/node_modules/strip-ansi"

我的package.json

"devDependencies": {
"babel-core": "^6.4.5",
"babel-loader": "^6.2.2",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"webpack": "^1.12.13"
}

您似乎没有将 webpack-dev-server 安装为本地节点模块(它不在您的 package.json

您可以使用 npm listnpm list --global 查看本地和全局安装了哪些模块。要查找特定模块,将该命令通过管道传输到 grepnpm list --global | grep webpack-dev-server

我建议将开发服务器安装为项目的 devDependency。作为一般规则,除非绝对必要,否则尽量避免使用 -g 安装模块。此外,使用 npm 脚本(在您的 package.json 中)到本地目录中的 运行 模块,而不必明确引用它们,例如

{
  "scripts": {
    "serve": "webpack-dev-server --config your.config.js"
  }
}

然后 运行 npm run serve 而不是 运行ning ./node_modules/.bin/webpack-dev-server --config your.config.js(或者更糟,全局安装)