1、本地创建项目
1.1、创建空文件夹
mkdir myFirstNpm
1.2、初始化项目
cd myFirstNpm
npm init
根据命令行提示,设置一些必要的package.json信息,简单展示如下👇
{
"name": "xiaojt-npm-test001",
"version": "1.0.0",
"description": "my first npm",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "xiaojt",
"license": "ISC",
"dependencies": {
"xiaojt-npm-test001": "^1.0.0"
}
}
下面着重说一下package.json中的内容
- name: 包名,后续在npm中搜索全靠它,跟项目名字没有关系
- version:版本号,每发布一次npm包就要增加一个版本,每个版本不能重复。
- description:描述
- main: 本包向外暴露的文件,很重要,一定要和你打包出来的文件名一模一样
- private: true/false 是否为私有。一般为false否则只有自己能使用
- keywords: npm检索的关键字
- author: 作者
- license: ISC
- ...
1.3、创建模块加载时的文件
创建 index.js 文件,用于安装依赖时,使用的文件
采用nodejs规范 commonjs,module.exports 导出,与之相对应使用该包时用 require 导入
function npmDemo(argument) {
const name = 'xiaojt';
return {
name:name,
}
}
module.exports=npmDemo();
至此,一个简单的待发布的npm包就创建好了,下面来看怎么发布npm👇
2、发布
Note: Your npm client must be version 5.5.1 or higher to change your account settings from the CLI. To update to the latest version of npm, on the command line, run npm install npm@latest -g
如有必要,则先更新npm
注意:升级之后可能会造成npm在其他项目不可用或者安装依赖失败等问题(可以通过nvm切换版本解决或者切换 registry,影响可控)
npm install npm@latest -g
2.1、准备一个npm账户
在 npm官网 注册账号(网络你懂的👀)
注意:需要邮箱验证激活
2.2、npm adduser
先切换源,再登录发布包,必须使用npm origin ,不能切换成别的镜像
npm config set registry https://registry.npmjs.org
按照提示输入账户名、密码、邮箱,如下图👇
注意:邮箱验证码发送时间可能会受网路环境影响,这里耐心等待一会就好啦😊
如果这里报错,请直接看下文报错
2.3、验证是否登录成功
npm whoami
PS D:\mine-project\myFirstNpm> npm whoami
xiaojt
PS D:\mine-project\myFirstNpm>
还可以查看一下账户简介,如图所示
npm profile get
注意:npm adduser成功的时候默认你已经登陆了,所以不需要再进行npm login了
接着先进入项目文件夹下,然后输入以下命令进行发布
2.4、执行发布命令
这里使用公开方式发布包
npm publish --access public // 非公开
npm publish
发布成功
+ 你的文件名@version
3、报错
403
尝试如下办法解决:
- 账号密码输入无误
- 检查包是否重名——请检查npm官网上是否有同名项目,名字取决于 package.js 的项目名字段
- 网络正常
- 镜像源问题——切换原镜像
npm config set registry https://registry.npmjs.org
更多: 使用nrm管理registry地址
# 1. 下载nrm
npm install -g nrm
# 2. 添加registry地址
nrm add npm https://registry.npmjs.org
nrm add taobao https://registry.npm.taobao.org
# 3. 切换npm registry地址
nrm use taobao
nrm use npm
426
npm设置源的时候,要设置成 https 协议
npm config set registry https://registry.npmjs.org
other errors
更多错误案例解决,请查看这里
4、使用发布的npm
- 安装
npm install yournpmname -S
- 使用
const test_npm = require('yournpmname');
console.log(test_npm)
console.log(test_npm.name)
- 运行查看效果
如果没有配置 run code, 则使用 node 命令执行,比如: node src/libs/demo.js
可以看到输出结果
5、更新已经发布的包
比如: 创建一个 README.md 文件
> 这是我发布的第一个npm
## 安装
```bash
npm install yournpmname -S
or
yarn add yournpmname
```
## 使用
```js
var test_npm = require('yournpmname');
console.log(test_npm)
```
然后,修改版本号version,并发布
npm version patch
npm publish
5.1、npm version后面参数说明:
- patch:小变动,比如修复bug等,版本号变动 v1.0.0->v1.0.1
- minor:增加新功能,不影响现有功能,版本号变动 v1.0.0->v1.1.0
- major:破坏模块对向后的兼容性,版本号变动 v1.0.0->v2.0.0
6、从npm上面卸载自己发布的包
npm unpublish <package-name> -f
7、git存储库链接到包
这个比较简单,不做介绍
8、添加 dist-tags
先更新version,后发布
npm version patch
npm publish --tag beta
8.1、把dist-tags添加到特定版本
npm dist-tag add xiaojt-npm-test001@1.0.2 stable
+stable: xiaojt-npm-test001@1.0.2
8.2、下载指定版本包并使用
tag: stable 已经关联到 V1.0.2
npm install xiaojt-npm-test001@stable
"dependencies": {
"xiaojt-npm-test001": "^1.0.2"
}
🎈🎈🎈
🌹 本篇完,首发掘金,关注我,你会发现一个努力进步的宝藏前端😊
🎉 喜欢的小伙伴请点赞关注收藏哟
✨ 欢迎大家转发评论
🧨 蟹蟹😊