基于vue腳手架構(gòu)建庫并發(fā)布到npm

2020-9-8    seo達(dá)人

構(gòu)建庫的常見方法有兩種:一種是自己手動構(gòu)建webpack庫打包,設(shè)置output為 library; 另一種是基于vue-cli3輸出庫資源包。我們采用第二種vue腳手架的方式構(gòu)建庫。


新增編譯庫命令

// package.json

"scripts": {

   // ...

   "lib": "vue-cli-service build --target lib --name Step --dest dist packages/index.js"

}


// packages/index.js  默認(rèn)打包Step

import Step from '../steps/src/step';

Step.install = function(Vue) {

   Vue.component(Step.name, Step);

};

export default Step;

--name: 庫名稱。

--target: 構(gòu)建目標(biāo),默認(rèn)為應(yīng)用模式。這里修改為 lib 啟用庫模式。

--dest: 輸出目錄,默認(rèn) dist。

[entry]: 最后一個參數(shù)為入口文件,默認(rèn)為 src/App.vue。

更多詳細(xì)配置查看 ? vue腳手架官網(wǎng)


如果該庫依賴于其他庫,請在vue.config.js 配置 externals

// vue.config.js

module.exports = {

   configureWebpack:{

     externals: {

        vue: 'Vue',

        'vue-router':'VueRouter',

        axios: 'axios'

     }

   }

}

執(zhí)行 npm run lib 就可以發(fā)現(xiàn)我們的庫被打包到了 根目錄的dist文件夾下。


添加 .npmignore 文件(可選)

和 .gitignore 的語法一樣,具體需要提交什么文件,看各自的實際情況


# 忽略目錄

examples/

packages/

public/


# 忽略指定文件

vue.config.js

babel.config.js

*.map

配置npm庫信息

配置package.json文件,以發(fā)布庫文件。


{

 "name": "gis",

 "version": "1.2.5",

 "description": "基于 Vue 的庫文件",

 "main": "dist/gis.umd.min.js",

 "keyword": "vue gis",

 "private": false,

  "files": ["dist"],

 "license": "MIT"

}

name: 包名,該名字是唯一的??稍?npm 官網(wǎng)搜索名字,如果存在則需換個名字。

version: 版本號,每次發(fā)布至 npm 需要修改版本號,不能和歷史版本號相同。

description: 描述。

main: 入口文件,該字段需指向我們最終編譯后的包文件。

keyword:關(guān)鍵字,以空格分離希望用戶最終搜索的詞。

author:作者

files: 要上傳的文件

private:是否私有,需要修改為 false 才能發(fā)布到 npm

license: 開源協(xié)議

dependencies: 依賴庫

注意每次發(fā)布新的庫,需要更改版本號,規(guī)則如下:

"version": "1.2.5" 主版本號為 1,次版本號 2,修訂號 5

主版本號(Major):當(dāng)你做了不兼容的API修改

次版本號(Minor):當(dāng)你做了向下兼容的功能性新增

修訂號(Patch):當(dāng)你做了向下兼容的問題修正

登錄npm

首先設(shè)置登錄的npm鏡像地址


npm config set registry http://168.20.20.57.4873

然后在終端執(zhí)行登錄命令,輸入用戶名、密碼、郵箱即可登錄


npm login

接著發(fā)布庫資源到npm


npm publish

最后發(fā)布成功可到官網(wǎng)查看對應(yīng)的包并下載


npm install package_name

藍(lán)藍(lán)設(shè)計m.sillybuy.com )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)

分享本文至:

日歷

鏈接

個人資料

存檔