使用webpack脚本捆绑JS文件?

时间:2018-01-24 18:52:45

标签: javascript npm webpack bundle npm-scripts

我是webpack的新手,我似乎没有找到一种方法来捆绑JS文件,就像我以非常简单的方式使用Gulp一样。我一直在搜索,但没有找到任何直接答案。

现在我在我的package.json文件中创建了两个缩小的文件,但我希望能够只使用一个文件:

"scripts": {
    "stand-alone": "concurrently 'webpack --config=webpack.config.js src/whatever.vue demos/build.min.js --output-library=whatever1'  'webpack --config=webpack.config.js src/whatever2.js demos/mixin.min.js --output-library=whatever2'",
},

然后我的webpack.config.js看起来像这样:

const webpack = require('webpack');

module.exports = {
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.js'
    }
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          loaders: {
            scss: 'vue-style-loader!css-loader!sass-loader',
            js: 'babel-loader'
          }
        }
      },
      {
        test: /\.js$/,
        use: {
          loader: 'babel-loader',
        }
      }
    ]
  },
  plugins: [
    new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false,
        drop_console: false,
      }
    })
  ],
};

1 个答案:

答案 0 :(得分:2)

我相信您正在寻找entry points

webpack.config.js模块中导出对象:

定义entry属性:

 entry: {
    app: ['./path/to/file.js', './path/to/file2.js'],
  },

定义output属性:

 output: {
   path: '/path/to/assets', // ex. '../../wwwroot/dist'
   filename: '[name].js', // Substitutes [name] with the entry name, results in app.js
   publicPath: '/'
 },

将您的脚本更改为:

"scripts": {
    "stand-alone": "webpack --config=webpack.config.js",
},

如果您使用的是Vue + Webpack,我建议您查看vue-cli并使用webpack模板生成项目。它更高级,但您可以查看文档并了解您缺少的内容。

运行以下命令:

npm install -g vue-cli // install vue cli globally

vue init webpack my-project // create a sample project

如果要生成多个输出文件,可以有多个输入点,如下所示:

  entry: {
    app: ['./path/to/file.js', './path/to/file2.js'],
    mixins: './path/to/mixins.js',
    vendors: ['./path/to/vendor.js, './path/to/vendor2.js']
  },

这将写入磁盘./path/to/assets/app.js./path/to/assets/mixins.js/path/to/assets/vendors.js