尝试将js文件与webpack连接起来(就像一个gulp脚本)



我想用 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 很陌生。

谢谢

尝试"脚本加载器" 它不连接,但它在全局上下文中执行脚本,这是我在寻找"简单连接"时最初需要的。

最新更新