Webpack正在寻找全球目录中的反应

这是我的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']
      }
    }]
  }
};

运行服务器时,为什么会出现以下错误?

(webpack)-dev-server /〜/ strip-ansi / index.js中的错误模块构建失败:错误:无法找到相对于目录“/Users/ecco/.nvm/versions/node/”的预设“react” V5.4.0 / LIB / node_modules /的WebPack-DEV-服务器/ node_modules /带状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"
}

回答(1)

2 years ago

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

您可以使用 npm listnpm list --global 查看本地和全局安装了哪些模块 . 要查找特定模块,请将该命令输入 grep ,即 npm list --global | grep webpack-dev-server

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

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

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