【问题标题】:Trying to concatenate js files with webpack (like a gulp script)尝试将 js 文件与 webpack 连接(如 gulp 脚本)
【发布时间】:2017-05-09 21:02:25
【问题描述】:

我想用 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'));
});

我尝试使用暴露加载器,但它总是会丢失一些依赖项。

{
  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 中未定义Materialize。

我可以只听文件更改并启动我的gulp scripts 还是有办法直接连接文件?我对 webpack 2 很陌生。

谢谢

【问题讨论】:

    标签: webpack webpack-2


    【解决方案1】:

    试试'script-loader'它不会拼接,而是在全局上下文中执行脚本,这正是我最初寻找“简单拼接”时所需要的。

    【讨论】:

      猜你喜欢
      • 2018-07-03
      • 2015-08-25
      • 2018-07-06
      • 1970-01-01
      • 2017-12-03
      • 2014-11-13
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多