背景
有时候我们想要安装的node Package是来自我们自己开发的二方包,但是对于个人开发者来说,也许我们没有私有的npm registry。这时我们可以通过自己私库的github url来用npm安装二方包。
方法
请注意,通过github url安装的前提是project里有package.json。
- 通过npm cli安装github public project
javascript
npm i https://github.com/user_name/node_project_name
也可以通过如下方式安装具体的某个commit:
shell
npm install use_name/node_project#commit
安装branch:
shell
npm install use_name/node_project#branchName
通过tag或者version来安装
shell
npm install use_name/node_project@tag #user_name/node_project@release
npm install use_name/node_project@version #user_name/node_project@1.0.0
- 安装私库
私库的安装需要使用git的ssh repo link:
shell
npm install git+ssh://git@github.com:user_name/node_project.git
二方包导出
Node.js 支持 用于在 package.json 中定义入口点的新字段,称为 "exports"。该字段是在 package.json 中定义 "main" 的更强大的替代方法,并且可以控制您的包的哪些部分暴露给引用者。
这是一个支持 CommonJS 和 ESM 的单独入口点的 package.json:
Here's an package.json that supports separate entry-points for CommonJS and ESM:
javascript
// package.json
{
"name": "my-package",
"type": "module",
"exports": {
".": {
// Entry-point for `import "my-package"` in ESM
"import": "./esm/index.js",
// Entry-point for `require("my-package") in CJS
"require": "./commonjs/index.cjs",
},
},
// CJS fall-back for older versions of Node.js
"main": "./commonjs/index.cjs",
}