发布NPM包教程
- 新建目标文件夹
mkdir c:/workspace/npm/qiud_functions
- vscode打开目标文件夹
code c:/workspace/npm/qiud_functions
- 初始化本地git仓库
git init
echo "# 包介绍" >> README.md
echo "node_modules" >> .gitignore
git add . && git commit -m "Initial commit"
- 初始化npm
文件夹名不能携带@, 否则不能初始化
npm init -y
- 安装typescript
npm install --save-dev typescript
- 手动编写tsconfig.json配置文件
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": true,
"outDir": "./lib",
"strict": true
},
"include": ["src"],
"exclude": ["node_modules"]
}
declaration表示编译的时候同时会生成
*.d.ts
文件(www.hedaoshe.com)
- 创建目录结构, 也就是增加了src和lib文件夹, src存放源代码, lib存放编译后代码
- 补全package.json
"main":"lib/index.js",
"types":"lib/index.d.ts",
"files": ["lib/**/*"],
"scripts": {
"build": "tsc",
"prepublishOnly":"npm run build",
"pregit": "git pull origin",
"git": "git add . && git commit -m'无备注'",
"postgit": "git push origin"
},
files
: 表示推送到npm时只包含lib目录下的文件
prepublishOnly
: 表示推送前会执行的命令脚本命令就两个: 一个推送到npm, 另一个是推送到github
- 推送到npm
npm publish
- 关于包更新
每次更新包后, 你可以手动修改版本号, 然后推送到npm, 也可以使用下面三条命令
# 打补丁
npm version patch
# 小版本更新
npm version minor
# 大版本更新
npm version major
参考资料
Step by step: Building and publishing an NPM Typescript package.