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

原文地址:https://www.cnblogs.com/zmztya/p/14716421.html