功能描述:在 npm 官网注册并发布个人创建的依赖包,并在个人项目中使用该依赖包。
一、npm 账号注册
在 npm 注册官网,输入个人昵称、邮箱、密码即可注册成功。成功界面如下:
二、创建依赖包
- 在当前路径创建一个依赖包文件
npm-registry-test1
(在终端操作)
# 创建 npm-registry-test1 文件夹
mkdir npm-registry-test1
# 进入该项目文件路径
cd npm-registry-test1
# 初始化项目
npm init -y
- 在当前项目路径下 新建一个
index.js
测试文件
exports.test = function(){
console.log('TEST MODULES')
}
最终文件结构如下:
三、上传依赖包
- 检验下当前的仓库地址,如果不是
https://registry.npmjs.org/
则需要修改该地址
# 查看当前 npm 仓库地址
npm config get registry
# 修改当前 npm 仓库地址
npm config set registry https://registry.npmjs.org/
# 登录 npm 仓库
npm login
- 发布依赖包
npm publish
执行结果如图:
- 查看上传的依赖包
四、使用依赖包
- 新建一个
test-project
项目,并初始化
# 新建项目文件夹
mkdir test-project
# 进入该文件夹路径
cd test-project
# 初始化项目
npm init -y
- 安装依赖
# 安装依赖包 npm-registry-test1
npm i npm-registry-test1@1.0.0
此时可以在 package.json
中可以看到以下依赖包的版本
"dependencies": {
"npm-registry-test1": "^1.0.0"
}
并且在 node_modules
文件夹中可以看到 npm-registry-test1
依赖包的代码内容。
- 使用并运行,查看结果
在项目目录下新建一个main.js
文件夹,代码如下:
// main.js
const npmRegistryTest1 = require("npm-registry-test1");
npmRegistryTest1.test();
在终端运行 main.js 文件,结果如图:
node main.js
五、其它
问题1:依赖包名重复
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/npm-registry - You do not have permission to publish "npm-registry". Are you logged in as the correct user?
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.
因为我一开始起的依赖包的文件名叫 npm-registry
,这个包在npm上有人推送过了,换个包名就可以了。
问题2:版本重复
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/npm-registry-test1 - You cannot publish over the previously published versions: 1.0.0.
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.
因为 npm-registry-test1
这个依赖包已经发布过 1.0.0
的版本,版本号重复,只需要更改 package.json
中的 version
版本号即可。
问题3:撤销依赖包的发布版本
npm unpublish npm-registry-test1@1.0.0
# 如果是24h内发布的包,需要加上 --force
npm unpublish npm-registry-test1@1.0.0 --force
备份原有仓库镜像地址
yarn 仓库:https://registry.yarnpkg.com
npm 仓库:https://registry.npm.taobao.org/