## 1⃣️制作插件
1. 安裝node及npm,之后新建一個文件夾,在終端中打開,執行命令npm init,一路回車然后輸入yes即可,生成一個package.json, ` {
"name": "swTest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}`,其中name就是插件的名稱,默認是文件夾名字;version為版本號,注意每次發布新版本的時候需要手動更新版本號;description是描述;main是入口文件,加載這個插件時讀的文件,這個也是最重要的屬性,這個屬性是別人引用你的插件時,讀取的入口文件,在這個文件里,需要你向外暴露接口;author是作者,可以是npm注冊的名字。
2. 在根目錄下新建src文件夾,里面存放的就是自己的代碼片段。
3. 在根目錄下新建個 .npmignore(注意要有個.),里面就是npm在發布時會忽略項目中的文件。
4. 在根目錄下新建README.md,里面時發布到npm時項目介紹。
## 2⃣️babel轉義
因為很多語法都是ES6及以上,所以需要轉義成ES5。
1. 全局安裝Babel: `npm install -g babel-cli`
2. ES6轉碼規則: `npm install babel-preset-es2015 --save-dev`
3. react轉碼規則: `npm install babel-preset-react --save-dev`
4. ES7不同階段語法提案的轉碼規則: `npm install babel-preset-stage-0 --save-dev` (0 - 3都可以)
5. 根目錄下新建.babelrc(同樣有.);加入規則 `{
"presets": [
"es2015",
"react",
"stage-2"
],
"plugins": []
}`
6. 一般我們是將代碼寫在src里面,然后將整個src轉義成es5,根目錄下運行代碼 `babel src --out-dir lib` ,得到lib文件夾,就是src轉義之后的文件了。
7. 修改package.json,里面main修改為`lib/index`
8. 修改.npmignore文件,增加`src/
node_modules/
package-lock.json`
## 3⃣️發布插件
1. 沒有npm賬號的先去npm官網注冊,官方網站是:`https://www.npmjs.com/`;
2. 先修改package.json中的name,修改成你的插件名,然后在npm官網查詢是否已經被注冊了這個名字,有的話修改一下;
3. 項目根目錄下執行`npm adduser `,輸入npm的賬號密碼還有郵箱,缺一不可;
4. 可以運行`npm whoami`查看當前用戶是否是自己;
5. 運行代碼`npm publish`進行發布;
6. 可以在npm官網右上角點擊packages查看自己發布的,有的話發布就成功啦;
7. 在項目之中可以引進自己的插件`npm install xxx --save-dev`進行使用啦;
## 4⃣️維護插件
1. 對插件代碼功能進行了拓展或者修改,需要重新發布新版本,除了改代碼之外,需要每次手動把package.json中的version進行修改,這是版本號,代表版本改動了。npm使用的版本號規則是semver語義化版本,初始化是1.0.0,依次是主版號.次版號.修訂號,主版號是不相容的API修改,次版號是功能性新增,修訂號是問題修正。
2. 修改了之后再運行一次`npm publish`進行發布;
3. 發布之后在運用的項目如何更新呢?(1)如果是npm,由於是自己的插件,可以知道自己的版本修改成了什么,在項目中package.json里面找到依賴包版本,手動改成最新的版本號,然后項目運行`npm install --force`就可以了;(2)如果是yarn,運行`yarn upgrade`也ok;(3)由於項目中的依賴包會發生更新,所以有時候我們會安裝第三方插件進行查看,`npm install -g npm-check-updates`,運行`ncu` 查看可更新包,`ncu -u`更新package.json,`npm install`升級到最新版本即可。
代碼已經傳上github,`https://github.com/Songwei1029/create-plug`,有問題歡迎留言。
