# npm发布流程
# 写在最前面
目前已经发布了属于自己的NPM包,如果发布新的后会更新:
- @karl_fang/mylibs——这是一个JS库,打包了数学、数据结构、函数、URL和数组的常用函数
- @karl_fang/data-structure——这个NPM包括了用JS封装常见的数据结构以及在JS语言中将链表和二叉树展示的辅助函数
TIP
也可以在右上角导航栏Guide菜单中查看
# 注册npm官网账号
npm官网:https://www.npmjs.com/
输入用户名、密码、邮箱
# 建立文件
- 输入
npm init
,建立package.json文件,配置如下:
{
"name": "@karl_fang/mylibs",
"version": "1.0.0",
"description": "This is a JS library that packages the common functions of mathematics, data structure, function and array.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"javascript",
"tools"
],
"author": "karl_fang",
"license": "MIT",
"type": "module"
}
- name:一般与文件夹的名字相同
- version:版本号
- description:对该NPM包的描述
- main:入口文件
- scripts:设置快捷命令
- keywords:该NPM包的关键词,类似网站的keywords
- author:作者名
- license:我也不太清楚各种license的区别,就写了MIT
# 写JS库
把JS按module导出,然后在入口文件index.js中import导入,最后把所有的导出:
import ArrayTools from './src/array/array.js';
import BinaryTree from './src/dataStructure/binaryTree.js';
import LinkedList from './src/dataStructure/linkedList.js';
import MinStack from './src/dataStructure/minStack.js';
import Sort from './src/dataStructure/sort.js';
import MyFunctions from './src/function/general.js';
import MyRegExp from './src/function/regRep.js';
import MyURL from './src/function/URL.js';
import MathTools from './src/math/math.js';
export {
ArrayTools,
BinaryTree,
LinkedList,
MinStack,
Sort,
MyFunctions,
MyRegExp,
MyURL,
MathTools
}
# 写README文档
# 本地登陆NPM
- 输入命令
npm adduser
- 输入NPM账号的用户名
- 输入密码
- 输入绑定NPM账号的邮箱
如果遇到镜像源问题:
npm ERR! code E403 npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/flexing - Forbidden 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
可以输入命令更改到官方的源(E403)才行:
npm config set registry https://registry.npmjs.org/
# 发布NPM包
- 输入
npm publish
# 更新版本
输入命令更新版本号
- 修订号,问题修正
npm version patch
- 次版本号,功能性新增
npm version minor
- 主版本号,不兼容的API 修改
npm version major
发布输入
npm publish
还会收到邮件,输入8位的OTPcode
如果NPM包的名字是@开头的那可能会报错,
npm ERR! publish Failed PUT 402 npm ERR! code E402 npm ERR! You must sign up for private packages :
这个当你的包名为
@your-name/your-package
时才会出现,原因是当包名以@your-name
开头时,npm publish
会默认发布为私有包,但是 npm 的私有包需要付费,所以需要添加如下参数进行发布:npm publish --access public
# 补充
一般的NPM包应该至少包括入口文件index.js,README文档,package.json文件