繁体   English   中英

gulp&webpack:找不到Entry模块中的ERROR

[英]gulp & webpack: ERROR in Entry module not found

我使用webpack来处理JavaScript(ES6模块捆绑,转换为ES5等)和gulp - 用于其他任务( jadesass等)。 我想保持webpack在配置webpack.config.js ,但执行webpack通过gulp任务。


项目结构

📁 发展

📁es6 - 源JS

📄main.js

📁JS -输出JS发展

📄index.js

📁 生产

📄webpack.config.js

📄gulpfile.js


gulpfile.js

var  gulp = require('gulp'), 
        //...
     gulpwebpack = require('gulp-webpack')


gulp.task('gulpwebpack', function(){ 

    return gulp.src('development/03_es6/main.js')
        .pipe(gulpwebpack(require('./webpack.config.js')))
        .pipe(gulp.dest('development/js/'));

});

// ...

gulp.task('watch', ['browser-sync', 'jade', 'sass'], function() {
    // ...
    gulp.watch('development/03_es6/*.js', ['test']);
});

gulp.task('default', ['watch']);

webpack.config.js

const NODE_ENV = process.env.NODE_ENV || 'development';

module.exports = {

    context: __dirname + '/development',

    entry: './03_es6/main.js',

    output: {
        path: __dirname + '/development/js/',
        filename: 'index.js'
    },

    module: {
            rules: [
                {
                    test: /\.jsx?$/,
                    exclude: /node_modules/,
                    use: ['babel-loader']
                }
            ]
        }

    //watch: NODE_ENV === 'development'
};

问题

如果只是执行webpack从控制台(这意味着执行webpack独立地gulp ),一切都将是正确的。 但是,如果要执行gulp gulpwebpack ,将出现错误消息:

 ERROR in Entry module not found: Error: Cannot resolve 'file' or 'directory' ./development/03_es6/main.js in C:\...\projectFrolder/development

我知道错误的起源在这里:

// ...

context: __dirname + '/development',

entry: './03_es6/main.js',

output: {

// ...

但是, development/03_es6/main.js./development/03_es6/main.js也不会起作用。 Gulp无法正确读取webpack.config.js ,不是吗?

我想,你应该切换到

 'use strict'; const gulp = require('gulp'), named = require('vinyl-named'), webpack = require('webpack-stream'); gulp.task('webpack', function () { gulp.src('development/03_es6/main.js') .pipe(named()) .pipe(webpack(require('./webpack.config.js'))) .pipe(gulp.dest('./build')) }); 

从webpack.config.js中删除条目:

 module.exports = { context: __dirname + '/development', output: { path: __dirname + '/development/js/', filename: 'index.js' }, module: { rules: [ { test: /\\.jsx?$/, exclude: /node_modules/, use: ['babel-loader'] } ] } }; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM