我想用 webpack 重现这个 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'));
});
我尝试使用暴露加载器,但它总是错过一些依赖项。
{
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 加载器(就像在 gulp 任务中一样(
presets: ['es2015-allow-top-level-this']
Materialize 未从此文件 https://github.com/Dogfalo/materialize/blob/master/js/global.js 定义。
我可以只听文件更改并开始gulp scripts
还是有办法直接连接文件?我对 webpack 2 很陌生。
谢谢
尝试"脚本加载器" 它不连接,但它在全局上下文中执行脚本,这是我在寻找"简单连接"时最初需要的。