bin
{
"bin": {
"gh-pages": "bin/gh-pages.js",
}
}
包里面的bin
字段相当于在说:“嗨npm
,如果待会儿有人执行gh-pages
这个命令,就去我目录下找bin/gh-pages.js
这个文件”。
scripts
{
"dependencies": {
"gh-pages": "^6.1.1"
},
"scripts": {
"deploy": "gh-pages -d dist"
}
}
针对上面的package.json
内容,当我们执行npm run deploy
时,实际执行的目标是什么?
我们来到gh-pages
的目录结构
然后打开package.json
文件,找到bin
属性。
于是我们看到了gh-pages
属性,对应的属性值就是npm run deploy
执行的目标,也就是bin/gh-pages.js
这个文件。
main
当该项目是一个npm
包时,main
指定的文件,将会被作为包的入口。
// craco-less的package.json
{
"main": "./lib/craco-less.js"
}
// index.js
const CracoLessPlugin = require('craco-less');
上面的require('craco-less')
所访问的就是node_modues/craco-less
里的./lib/craco-less.js
文件。
module
前置知识:
CommonJS:使用exports
导出的模块
var add = function(x, y) {
return a + y;
}
exports.add = add
ESM:使用export
导出的模块
var add = function(x, y) {
return a + y;
}
export {
add
};
当打包工具遇到一个npm
包,会尝试识别package.json
中的module
字段,如果支持,则会优先使用module
指向的文件,否则就使用main
字段指向的文件。
{
"main": "./CommonJS.js",
"module": "./ESM.js"
}
资料:
https://maimai.cn/article/detail?fid=1751256976&efid=BKFBo9Re...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。