前端工程化
工程化相关
包管理器
Npm/Yarn
Npm发包
files
指定哪些文件会被打包发布(后面详细描述)。
main、browser、exports、module
这四个字段都是用来定义包的入口,npm
只规定了 main
和 browser
这两个字段,exports
是 nodejs
的规范,module
一般被构建工具所支持。
main
main
规定了包的主要入口点,默认值为 index.js
。
如果你的包名为 foo
可以通过 require("foo")
引入对应模块导出的内容,所以这应该是个 CommonJS 模块,除非你设置了 "type": "module"
。
Pnpm
- 省空间
- 解决幽灵依赖
如何确定一个项目的包管理工具?
- lock文件、package.json下packageManager字段来判断
如何确定包管理工具的版本号?
- engines字段
打包工具
CommonJs和Esmodule的区别
CJS:运行时加载
Esmodule:编译时加载
CI/CD
npm scripts
package.json
peerDependencies
- 项目安装的某个依赖存在peerDependencies,项目又没有声明这个依赖,那项目会自动安装吗,会autoinstall