利用npm上傳外掛
前言
有時候工作需要寫一些特定的方法,或者外掛來解決相關的問題,例如引入其他人的UI元件庫沒有自己想要的動畫,或相關的效果,這個時候我們往往會自己寫方法,但為了方便其他人使用,比起上傳到github,這個時候上傳到npm顯然更加方便管理。
第一步:下載nodeJS並註冊npm賬號
執行必須建立在系統以及安裝了nodejs的前提之下,下載地址:http://nodejs.cn/download/,然後需要在npm的官網註冊一個賬號,地址:https://www.npmjs.com/,注意國內註冊成功之後會收到一封確認郵件,點選進去確認,但npm官網會有延遲,因此上面會一直出現提示你啟用郵箱的文字,這個時候可以先不用管它的提示,但過了幾個小時還是一直提示,此時可以換一個郵箱繫結來解決。
第二步:登入
控制檯輸入:npm login,然後再依次輸入賬號密碼郵箱;
注意:如果此時報錯code E409,那麼輸入 npm config set registry=http://registry.npmjs.org 把npm倉庫從淘寶映象庫重新指向回npm。
第三步:建立需要上傳的專案(外掛)
1. 進入檔案之後 npm init 初始化檔案;
2. 填寫相關資訊:
package name: 包的名稱
version: 版本號
description: 包的描述
entry point: 入口檔案,預設是index.js
test command: 測試命令,可以不填直接回車
git repository: 提供git個人倉庫,可以不填,直接回車
keywords: testplugin(專案的關鍵詞,npm搜尋關鍵詞)
author: 作者名稱
license: (ISC) 包遵循的開源協議,預設是ISC
例如:
{ "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": "[email protected]" }
最後yes確認之後,會多出一個package.json檔案,就是我們剛才填的專案資訊。
第四步:建立index.js(就是我們剛剛指定的入口檔案)
利用module.exports 或簡寫成 exports 進行匯出方法或屬性
exports.isValid = (s)=>{ let arr = []; s = s.split(''); for( var v of s){ if(v === ' ') continue; else if(v === '(') arr.push(')'); else if(v === '{') arr.push('}'); else if(v === '[') arr.push(']'); else if(arr.length === 0 || arr.pop() !== v) return false; } return arr.length === 0 ? true : false; } exports.speak = ()=> { return console.log('Hello World'); } exports.name = "Rechard";
第五步:釋出
控制檯輸入:npm publish 釋出至npm即可,我們可以在官網https://www.npmjs.com/搜尋,但是剛釋出會有延遲,可能出現搜尋不到的情況,建議直接在自己的包裡面檢視
注意:每次釋出新版本在version那邊版本號都得疊加更新,例如"version":"1.0.0",下次就要改為"1.0.1"。
第六步:下載包
在需要下載的專案中,或自己建立一個新的資料夾,然後npm init 初始化之後,在npm install 包名(例如我的my-meteor2)就可以下載了。
最後只要require引入,我們就可以使用之前定義的方法了,是不是感覺逼格高了很多?O(∩_∩)O哈哈~
報錯原因總結
報E401--未登陸,重新npm login登陸即可。
報E403
npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user? --包名已經被佔用,建議先到官網https://www.npmjs.com/搜尋包名,如果包名沒有被使用,再到package.json中修改name的包名即可。
you must verify your email before publishing a new package -- 郵箱未驗證,去官網驗證一下郵箱。
報E409--地址指向錯誤,npm config set registry=http://registry.npmjs.org 改回地址即可。
參考文章:
https://www.jianshu.com/p/0fc09675d2e4