尝试使用webpack连接js文件(如gulp脚本)

时间:2017-05-09 21:02:26

标签: webpack webpack-2

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

谢谢

1 个答案:

答案 0 :(得分:0)

尝试{{3}}它没有连接,但它在全局上下文中执行脚本,这是我在寻找"简单连接时最初需要的#34;。