zoukankan      html  css  js  c++  java
  • webpack 之(25) output配置详解

    module.exports = {
      entry:'./src/index.js'
      output: {
        //文件名称(指定名称+目录)
        filename:'js/[name].js'
        //输出文件目录(将来所有资源输出的公共目录)
       path:resolve(__dirname,'build'),
       // 一般是生产环境,所有资源引入公共路径前缀 --->'imgs/a.jpg'-->'/imgs/a.jpg'
       publicPath:'/',
       chunkFilename:'js/[name]_chunk.js',//非入口chunk的名称
       library:'[name]',   //整个库向外暴露的变量名
    //libraryTarget:'window' //变量名添加到哪个 browser
    //libraryTarget:'global' 变量名添加到哪个上 node
    libraryTarget: 'commonjs' 打包后变成 exports['main']= },
    }

    什么是非入口chunk以及chunkFilename的作用分析?

     注释:import 和 optimization 两种方式 都会遵循 '[name]_chunk.js'的名称

     写了以后,先注释 chunkFilename ,然后打包 bulild 下多了 0.js文件,这时候打包是遵循的 filename规则

    但是为什么是0.js呢?

       因为chunk都属于入口,所以默认都是main.js  ,那么import也会形成新的chunk,如果也是main,那么就冲突了,所以webpack就采用命名,若还有就是 1,2等等

       发现0.js不好看,所以就用到了chunkFilename,采用后,打包后的文件名为 0_chunk.js

    library的作用?

     打包时向外暴露出去的变量,因为打包后的文件是main.js所以暴露出去的也是main变量名

    那么外界引入这个js文件时,就能得到main这个变量

     

    libraryTarget的作用?

    把这个变量添加在那个对象下,比如window

  • 相关阅读:
    mysql授权
    mysql函数大全
    mysql常用命令
    ECMAScript中变量的解构赋值
    ECMAScript中的const常量
    ECMAScript中let与var的区别
    javaScript中的变量作用域的闭包处理
    javaScript的prototype对象
    javaScript中的this作用域
    js对象的创建方式
  • 原文地址:https://www.cnblogs.com/zmztya/p/14716421.html
Copyright © 2011-2022 走看看