[关闭]
@demonly 2018-04-13T09:47:31.000000Z 字数 1307 阅读 714

webpack

前端工程


config

  1. const config = {
  2. // 配置信息
  3. };
  4. module.exports = config

入口

  1. entry: {
  2. app: './src/app.js',
  3. vendors: './src/vendors.js',
  4. }

设置一个对象为每个入口指定入口文件,入口可以是一个字符串也可以是一个数组。也可以只设置一个入口,此时将会默认设置这个路径为 main 入口的入口文件。

输出

  1. output: {
  2. path: path.resolve(__dirname, 'dist'),
  3. filename: '[name].js'
  4. }

loader

loader 的作用是在加载模块时对文件进行预处理,在 module.rules 中定义预处理的规则。use 属性既可以是一个表示 loader 的字符串,也可以是包含多个 loader 的数组

  1. module: {
  2. rules: [
  3. { test: /\.ts$/, use: 'ts-loader' },
  4. {
  5. test: /\.css$/,
  6. use: [
  7. { loader: 'style-loader' },
  8. {
  9. loader: 'css-loader',
  10. options: {
  11. modules: true
  12. }
  13. }
  14. ]
  15. }
  16. ]
  17. }

每条规则可以包含以下属性

解析

解析模块请求的选项

  1. resolve: {
  2. alias: {
  3. module: path.resolve(__dirname, 'app/third/module.js')
  4. }
  5. }

构建目标

target 可以是以下值 "web"、"webworker"、"node"、"async-node"、"node-webkit"、"electron-main"、"electron-renderer"

外部扩展

防止将某些模块打包到 bundle 中,而是在运行时获取这些扩展依赖。

  1. external: {
  2. jquery: 'jQuery'
  3. }

插件

插件旨在解决 loader 无法实现的功能,使用时需要传入插件的实例

  1. plugins: [
  2. new webpack.optimize.UgliJsPlugin(),
  3. new HtmlWebpackPlugin({template: './src/index.html'})
  4. ]
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注