使用Webpack脚本打包JS文件?

5

我对webpack非常陌生,不知道如何像Gulp一样轻松地打包JS文件。虽然我已经搜索了一段时间,但似乎没有直接的答案。

现在我正在使用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个回答

9
我相信你正在寻找入口点
在你的webpack.config.js模块导出对象中:
定义entry属性:
 entry: {
    app: ['./path/to/file.js', './path/to/file2.js'],
  },

定义输出属性:

 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

如果我想保留现有脚本的单独文件和打包后的文件,是否需要为打包脚本创建不同的webpack.config文件?我不能在同一个文件中完成吗? - Alvaro
1
我更新了答案,这样你就可以看到如何添加多个入口点,从而生成多个输出文件。希望这正是你所寻找的。 - Ricky Ruiz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接