• Configuration


    一、configuration types

    1、exporting a object

    2、exporting a function

    输出的函数会注入两个参数:环境,options(描述了传给webpack的配置参数,比如output-filename和optimize-minimize).

    module.exports = function(env, argv) {
      return {
        devtool: env.production ? 'source-maps' : 'eval',
         plugins: [
           new webpack.optimize.UglifyJsPlugin({
            compress: argv['optimize-minimize'] // only if -p or --optimize-minimize were passed
           })
         ]
      };
    };

    3、exporting a promise

    webpack会运行配置文件输出的函数,可以返回一个Promise。用于异步加载配置参数。

    module.exports = () => {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve({
            entry: './app.js',
            /* ... */
          })
        }, 5000)
      })
    }

    4、exporting multiple configurations

    可以输出多个配置(多个配置函数webpack 3.1才支持)。当运行webpack时,所有的配置都会构建。可以用于构建针对不同target(AMD和CommonJS)的library.

    module.exports = [{
      output: {
        filename: './dist-amd.js',
        libraryTarget: 'amd'
      },
      entry: './app.js',
    }, {
      output: {
        filename: './dist-commonjs.js',
        libraryTarget: 'commonjs'
      },
      entry: './app.js',
    }]

    二、Entry and Context

    webpack从entry对象指定位置开始构建bundle。context是包含entry文件的文件夹的绝对路径。

    1、context

    绝对路径,用于从配置中解析入口点和加载程序。

    context: path.resolve(__dirname, "app")

     默认使用当前文件夹,但推荐配置一个值,这样就不用依赖cwd了。

    2、entry

    entry指定应用程序的入口。如果传入一个数组,数组中所有文件都会执行。动态加载的module不是入口。

    一个最简单的原则:一个HTML页面一个入口。SPA:一个入口;MPA:多个入口

    entry: {
      home: "./home.js",
      about: "./about.js",
      contact: "./contact.js"
    }

     1)naming

    如果传入一个字符串或者字符串数组,chunk名字就是main。如果传入一个对象,对象的key值为chunk名字,value值描述chunk的入口。

     2)动态入口

    entry: () => './demo'
    or
    entry: () => new Promise((resolve) => resolve(['./demo', './demo2']))

     当结合output.library时,如果传入一个数组,只有最后一个会被输出。

  • 相关阅读:
    vue实现sku表格
    上传代码时git的用户名和密码是啥
    前端包管理和 corepack
    Springcloud之Gateway网关
    vue2底层拦截Object.defineProperty基本模型解释
    element表单有值但验证仍显示为空_和eltree连用赋值
    Java使用EasyExcel導出xls、xlsx 出现文件格式与扩展名不匹配
    go1.18泛型的简单尝试
    RabbitMQ解析
    nosql之MongoDB
  • 原文地址:https://www.cnblogs.com/YangqinCao/p/8244212.html
Copyright © 2020-2023  润新知