1. 程式人生 > 實用技巧 >利用npm上傳外掛

利用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

  https://www.cnblogs.com/calamus/p/8384318.html

  https://www.cnblogs.com/fayin/p/6831071.html