我想用webpack重现这个Gulp脚本,只有一个进程可以监听文件,但我无法使其正常工作。这是我的Gulp任务
gulp.task('scripts', function(){
return gulp.src( WATCH_SCRIPTS.SCRIPTS )
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(concat('plugins.min.js'))
.pipe(babel({ compact: false, babelrc: false, presets: ['es2015-allow-top-level-this'] }))
.pipe(ifElse(PROD_ENV,
() => {return uglify({
hoist_vars: true,
global_defs: {
jQuery: false,
$: false,
}
})},
() => {return sourcemaps.write('./')}
))
.pipe(plumber.stop())
.pipe(gulp.dest(BUILD_PATH + '/js'));
});
我尝试使用expose-loader,但总是错过了一些依赖。
{
name: 'scripts',
target: 'web',
entry: glob.sync('./src/assets/js/**/*.js'),
devtool: 'cheap-module-eval-source-map',
output: {
path: path.resolve(__dirname, 'public/js/'),
filename: 'plugins.min.js',
sourceMapFilename: 'plugins.min.js.map',
},
module: {
rules: [
{
test: /[\/]global\.js$/,
use: [{
loader: 'expose-loader',
options: 'Materialize'
}]
},
{
test: /[\/]jquery\.js$/,
use: [{
loader: 'expose-loader',
options: 'jQuery'
},{
loader: 'expose-loader',
options: '$'
}]
}
]
}
}
我尝试使用预设的babel-loader(如在gulp任务中)
presets: ['es2015-allow-top-level-this']
从此文件https://github.com/Dogfalo/materialize/blob/master/js/global.js中未定义Materialise。
我可以直接听取文件更改并启动gulp scripts
,还是可以直接连接文件?我对webpack 2很新。
谢谢
答案 0 :(得分:0)
尝试{{3}}它没有连接,但它在全局上下文中执行脚本,这是我在寻找"简单连接时最初需要的#34;。