作为依赖库时,Package.json 重要字段总结

1. main

作为模块被别的程序导入时,模块的主入口,默认为根目录的 index.js 文件。

2. files

用于配置包发布时,所包含的内容,默认为[“*”]

3. type

nonde执行时的模块类型,commonjs 或 module 默认为 commonjs

4. exports

在模块引用时,替代 main 入口,mian 入口只能导出单个文件,

1.exports 实现路径导出

// package.json
"exports": {
".": "./index.js",
"./submodule.js": "./src/submodule.js"
}
import submodule from 'es-module-package/submodule.js';
// Loads ./node_modules/es-module-package/src/submodule.js

import submodule from 'es-module-package/private-module.js';
// Throws ERR_PACKAGE_PATH_NOT_EXPORTED

2.exports 实现条件导出

"exports": {
".": {
"import": "./dist/my-lib.js",
"require": "./dist/my-lib.umd.cjs"
}
}

5.module

用于打包工具的 Tree Shaking ,指向ESModule格式的打包文件

参考资料

​https://nodejs.org/api/packages.html#type​

​https://docs.npmjs.com/cli/v9/configuring-npm/package-json#main​

​https://www.thinbug.com/q/40795836​