0.注冊
去官網(wǎng) 注冊一個賬號
1.本地登錄
npm login
2.打包
npm run lib // 查看你自己的打包命令是什么劳翰,我用的是vuecli3 下的構建庫
3.本地測試
npm pck
//在其他的項目中安裝 test-package.tgz
npm install 本地路徑下的 test-package
4.確認發(fā)布包的信息
name:模塊名昌粤,之后發(fā)布之后就可以讓用戶npm install xxxx來引用你的開源模塊了
version:版本號郁竟,語義版本號分為X.Y.Z三位,分別代表主版本號逻谦、次版本號和補丁版本號颖变。當代碼變更時生均,版本號按以下原則更新。
- 如果只是修復bug腥刹,需要更新Z位马胧。
- 如果是新增了功能,但是向下兼容衔峰,需要更新Y位佩脊。
- 如果有大變動,向下不兼容垫卤,需要更新X位威彰。
description:
簡單介紹自己的模塊
main:
入口文件,必要葫男,當通過require('xxx')時抱冷,是讀取main里聲明的文件
test command:
測試命令
git repository:
git倉庫地址
keywords:
關鍵詞,可以通過npm搜索你填寫的關鍵詞找到你的模塊
author:
作者信息梢褐,可以之后編輯更詳細一些
5.發(fā)布
npm publish
6.刪除
npm unpublish <package>@<version>//只能刪除不到24小時內(nèi)的包旺遮,若權限錯誤加上 --force
//發(fā)布時間超過二十四小時內(nèi)的包
發(fā)布一個新版本赵讯。里面是空文件,覆蓋以前的包耿眉。
然后執(zhí)行npm deprecate my-thing@"< 最新版本號"
一個正確的順序是以上的過程 边翼, 但是你期間一定會遇到各種問題, 那么下面就列出可能出現(xiàn)的幾個問題
1. 不要把node_modules同步到github
NPM默認不會把node_modules發(fā)上去鸣剪。
但是github會组底。所以.gitignore這個文件不可少。
2. README.md
用來描述怎么使用的
3. You cannot publish over the previously published version
你已經(jīng)發(fā)過一個該版本的包筐骇,修改package.json中的版本號债鸡。刪除的也算發(fā)布過了
4. you do not have permission to publish "your module name". Are you logged in as the correct user?
包名被占用,修改package.json中的name铛纬,重新發(fā)布厌均。
如果確定你的包名沒有被占用,還有一種可能是本地測試的時候link過或安裝過告唆,緩存中已經(jīng)存在該包棺弊,但是測試的時候信息不一致造成的,刪除用戶npm目錄下的自己的包擒悬,嘗試重新publish模她。
5. Request Entity Too Large
多余的文件上傳了上去, 新建一個.npmignore忽略了就行懂牧,規(guī)則類似.gitignore
6.no_perms Private mode enable, only admin can publish this module
npm config set registry=http://registry.npmjs.org //修改回npm
出現(xiàn)問題仔細看npm-debug.log
????附贈????
npm update <package>
//可以把當前目錄下node_modules子目錄里邊的對應模塊更新至最新版本侈净。
npm cache clear
//可以清空NPM本地緩存,用于對付使用相同版本號發(fā)布新版本代碼的人归苍。
//兼容多種引入方式
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) : (global.Qarticles = factory());
})(this, function () {
class Qarticles {
constructor(canvas, options = {}) {
this.canvas = canvas
this.width = options.width || 100
}
...
}
return Qarticles
})