Gruntjs grunt网页包找不到模块';网页包开发服务器';

Gruntjs grunt网页包找不到模块';网页包开发服务器';,gruntjs,webpack,webpack-dev-server,Gruntjs,Webpack,Webpack Dev Server,我有一个grunt设置,可以使用webpack和grunt webpack捆绑我的react文件。我没有使用webpack dev server,但我的grunt仍在输出错误,因为找不到模块“webpack dev server” 这是我的grunt文件: var webpack = require("webpack"); var webpackConfig = require("./webpack.config.js"); module.exports = function(grunt) {

我有一个grunt设置,可以使用webpack和grunt webpack捆绑我的react文件。我没有使用
webpack dev server
,但我的grunt仍在输出错误,因为
找不到模块“webpack dev server”

这是我的grunt文件:

var webpack = require("webpack");
var webpackConfig = require("./webpack.config.js");

module.exports = function(grunt) {
  require('load-grunt-tasks')(grunt);
  grunt.loadNpmTasks("grunt-webpack");

  grunt.initConfig({
    eslint: {
      options: {
        configFile: 'eslint.json'
      },
      target: ['./react/components/**/*.js','./react/services/**/*.js', './node/source/**/*.js']
    },
    webpack: {
      options: webpackConfig,
      build:{}
    },
    watch: {
      app: {
        files: ['./react/main.js', './react/components/**/*.js','./react/services/**/*.js'],
        tasks: ["webpack"],
        options: {
          spawn: false,
        }
      }
    }
  });

  grunt.registerTask('lint', ['eslint']);
  grunt.registerTask('build', ['webpack']);
  grunt.registerTask('default', ['watch']);

};
webpack.config.js
文件

const path = require('path');
const buildDirectory = './node/static/js/';

module.exports = {
    entry: './react/main.js',
    resolve: {
        extensions: ['', '.js', '.jsx'],
    },
    output: {
        path: path.resolve(buildDirectory),
        filename: 'bundle.js',
    },
    externals: {
        'cheerio': 'window',
        'react/lib/ExecutionEnvironment': true,
        'react/lib/ReactContext': true,
    },
    stats: {
        assets: false,
        colors: false,
        modules: false,
        version: false,
        hash: false,
        timings: false,
        chunks: false,
        chunkModules: false
    },
    module: {
        loaders: [{
            test: /\.jsx?$/,
            exclude: /(node_modules|bower_components)/,
            loader: 'babel',
            query: {
                presets: ['react', 'es2015'],
            },
        }],
    },
    plugins: [],
};
错误输出

grunt build
Loading "webpack-dev-server.js" tasks...ERROR
>> Error: Cannot find module 'webpack-dev-server'
Loading "webpack-dev-server.js" tasks...ERROR
>> Error: Cannot find module 'webpack-dev-server'

Running "webpack:build" (webpack) task


Done.

如果我添加
webpack dev server
包,这个错误就会得到解决,但我不希望在我的项目中有额外的依赖关系

套餐:

"webpack": "^1.13.1",
"grunt-webpack": "^1.0.14",
"grunt": "^1.0.1",
"grunt-contrib-watch": "^1.0.0",
"grunt-eslint": "^19.0.0",

您必须将其添加为依赖项。为什么你无论如何都不需要它;看来有必要在开发中运行该项目。这也是NPM允许您拥有开发依赖关系的方式。您列出的所有依赖项都是开发人员依赖项

见下文:

  "devDependencies": {
    // ... more dev dependencies
    "webpack-dev-server": "^1.14.1"
  },
  "dependencies": {
    // ... more 'normal' dependencies
    "bootstrap": "^3.3.6"
  }

这不是一个解决方案,这是一种黑客行为。如果我没有使用它,为什么我要把它包括在我的项目中。你正在使用它。。。您使用的其中一个软件包,请使用它。所以你必须依赖它。有些东西需要这些模块,并将其包含在您的
包中。json
不是黑客行为。
webpack dev server
grunt webpack
的开发和对等依赖关系。它真的依赖吗?因为在文档中提到的地方没有是,请参阅和。但是,它应该在您安装
grunt webpack
时安装,或者至少应该发出警告,说明没有安装对等依赖项。好的,谢谢。我不知道为什么它没有安装,我会再试一次,看看输出。