把自己的代碼發布到npm(npm publish)


 

寫了代碼如何發布到npm包?

示例

demo1

demo2

1.注冊npm賬號

在npm官網注冊https://www.npmjs.com/
注意郵箱要驗證,會發送驗證鏈接到你的注冊郵箱,沒有驗證的話是不能發布代碼的

2.給你的代碼庫起個名字

名字不能重復,在官網查詢下是不是重復,重復的包名不能提交

3.創建項目

需要一個package.json文件,這個文件不僅僅是用來標明依賴和npm script腳本,也可以是一個npm包被外界識別的配置文件。
因為配置文件內容比較多,可以選擇自己手寫,或者

npm init

根據提示寫好你的信息,以我的為例:name包名和main/bin對應你的包的入口文件,這里我的代碼和github一起管理,author注意不要寫錯和你的npm賬號一致

{
"name": "calamus-vue-music",
"version": "0.0.2",
"description": "a vue music player",
"main": "music.vue",
"bin": "music.vue",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/calamus0427/calamus-vue-music.git"
},
"keywords": [
"music",
"player",
"vue",
"calamus"
],
"author": "calamus",
"license": "MIT",
"bugs": {
"url": "https://github.com/calamus0427/calamus-vue-music/issues"
},
"homepage": "https://github.com/calamus0427/calamus-vue-music#readme",
"_from": "calamus-vue-music@0.0.1"
}

4.本地測試

npm pack

會生成一個 tgz版本文件
打開一個新的項目,路徑為剛剛生成的路徑

npm install 路徑/文件-1.0.0.tgz

5.提交發布

先登錄你的賬號


$ npm adduser    Username: your name Password: your password Email: yourmail

按照你注冊的賬號配置好,這時候看一下package.json中author盡量與npm賬戶一致。
在根目錄下配置賬號信息,只用配置一次即可,我上傳的時候發現有提示必須admin權限才能上傳問題就是沒在根目錄下配置信息
檢查是否登錄成功

npm who am i
# 如果不成功則重新登錄一下
npm login

配置成功之后提交代碼

npm publish

如果提交成功會出現如下提示:

注意每次提交版本號都要比上次的高

5.測試是否提交成功

去官網你的賬號下面看一下有沒有
或者直接npm下載下來

npm install calamus-vue-music --save

一些常見的錯誤:

  • 1.no_perms Private mode enable, only admin can publish this module

這是因為鏡像設置成淘寶鏡像了,設置回來即可


npm config set registry http://registry.npmjs.org
  • 2.npm publish failed put 500 unexpected status code 401
    一般是沒有登錄,重新登錄一下 npm login 即可

  • 3.npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user?
    包名被占用,改個包名即可。最好在官網查一下是否有包名被占用,之后再重命名

  • 4.you must verify your email before publishing a new package
    郵箱未驗證,去官網驗證一下郵箱

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM