image.png

node内置模块 - path: https://nodejs.org/dist/latest-v12.x/docs/api/path.html

出口(针对生出的资源hash)

这里的出口是针对资源列表的文件名或路径的配置
出口通过output进行配置
**

  1. output: {
  2. path: path.resolve(__dirname, "target"), //必须配置一个绝对路径,表示资源放置的文件夹,默认是dist
  3. filename: "bundle.js" //配置的合并的js文件的规则
  4. },

动态规则:

  1. output: {
  2. path: path.resolve(__dirname, "target"), //必须配置一个绝对路径,表示资源放置的文件夹,默认是dist
  3. filename: "[id].[chunkhash:5].js" //配置的合并的js文件的规则,此处使用了hash,解决了老缓存的问题
  4. },

入口

入口真正配置的是chunk
入口通过entry进行配置
规则:

  • name:chunkname
  • hash: 总的资源hash,通常用于解决缓存问题,代码改变全都改变。
  • chunkhash: 使用chunkhash
  • id: 使用chunkid,不推荐

例子1:

  1. entry: {
  2. main: "./src/index.js", //属性名:chunk的名称, 属性值:入口模块(启动模块)
  3. a: ["./src/a.js", "./src/index.js"] //启动模块有两个
  4. },

./ 的含义:

  1. 模块化代码中,比如require(“./“),表示当前js文件所在的目录
    2. 在路径处理中,”./“表示node运行目录

    __dirname的含义:

    所有情况下,都表示当前运行的js文件所在的目录,它是一个绝对路径

    path的含义:

    该对象提供了大量路径处理的函数 ```javascript //该对象提供了大量路径处理的函数

var path = require(“path”) //导出了一个对象

// var result = path.resolve(“./“, “child”, “abc”, “123”); //1-9. 入口和出口\child\abc\123

var result = path.resolve(__dirname, “src”); //1-9. 入口和出口\node\src console.log(result); ```