2016-09-07 4 views
1

У меня есть настройка для того, чтобы связать мои файлы с помощью webpack и grunt-webpack. Я не использую webpack-dev-server, но до сих пор мой хрюкать выводит сообщение об ошибке, как Cannot find module 'webpack-dev-server'grunt webpack Не могу найти модуль 'webpack-dev-server'

Вот мой пехотинец файл:

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", 
+0

'WebPack-DEV-server' DEV и сверстников зависимость' хрюкать-webpack'. – robertklep

+0

Действительно ли это зависит? Причина в документах не указана там –

+1

Да, см. [Здесь] (https://github.com/webpack/grunt-webpack/blob/a69fdfdf7988ccbdd83fd1e6123b2cbcce784739/package.json#L21) и [здесь] (https: // github .com/WebPack/Грунт-WebPack/блоб/a69fdfdf7988ccbdd83fd1e6123b2cbcce784739/package.json # L37). Он должен был быть установлен, когда вы установили 'grunt-webpack', хотя, или, по крайней мере, должен был дать предупреждение о том, что зависимость между сверстниками не установлена. – robertklep

ответ

2

Вы должны добавить его в зависимость. Почему это вам не нужно в любом случае; представляется необходимым, чтобы запустить проект в процессе разработки. Таким образом, NPM позволяет вам иметь зависимости развития. Все перечисленные вами являются зависимыми от разработчиков.

Смотрите ниже:

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

Это не решение, его вид взлома. Если я не использую его, то почему я должен включать его в свой проект. –

+1

Вы используете его ... один из пакетов, которые вы используете, используйте его. Таким образом, вы должны иметь зависимость от него. Что-то требует, чтобы модули и включая его в '' 'package.json''' не были взломаны. –

Смежные вопросы