Vue插件打包與發(fā)布

插件功能開發(fā)完成后,若需要發(fā)布到公共組件庫中(例如:npmjs),需要對插件進(jìn)行打包并發(fā)布,簡單說明一下這個過程,以插件名 dialog 為例

  1. 創(chuàng)建 dialog 目錄,并進(jìn)入
  2. 運行命令行,初始化項目,生成 package.json
npm init -y
  1. 使用 webpack-simple 模板構(gòu)建項目基本結(jié)構(gòu)(前提為已自行安裝好 vue-cli
vue init webpack-simple

根據(jù)導(dǎo)航提示,設(shè)置好項目后,基本結(jié)構(gòu)生成完成

  1. 刪除無用內(nèi)容
    刪除 index.htmlsrc 目錄下的所有文件
  2. 復(fù)制插件內(nèi)容到 src 目錄中
  3. 修改 package.json 配置內(nèi)容
{
  "name": "dialog",
  "description": "the dialog plguin",
  "version": "1.0.0",
  "author": "TerryZ <terry5@foxmail.com>",
  "license": "MIT",
  //刪除原有的"priveate": true,發(fā)布到公共庫的項目,不能設(shè)置該參數(shù)
  //增加 main 配置,設(shè)置插件在安裝后的主入口文件
  "main": "dist/dialog.js",
  "scripts": {
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
  },
  "dependencies": {
    "vue": "^2.5.11"
  },
  //增加插件關(guān)鍵字描述,非必須,按需設(shè)置
  "keywords": [
    "front-end",
    "javascript",
    "dialog",
    "vue",
    "vuejs"
  ],
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ],
  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-preset-env": "^1.6.0",
    "babel-preset-stage-3": "^6.24.1",
    "cross-env": "^5.0.5",
    "css-loader": "^0.28.7",
    "file-loader": "^1.1.4",
    "node-sass": "^4.5.3",
    "sass-loader": "^6.0.6",
    "vue-loader": "^13.0.5",
    "vue-template-compiler": "^2.4.4",
    "webpack": "^3.6.0",
    "webpack-dev-server": "^2.9.1"
  }
}
  1. 修改 webpack.config.jsoutput 部分配置
output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: '/dist/',
    //修改輸出打包后的腳本文件名,該文件即是 package.json 中配置的 main 屬性的對應(yīng)文件
    filename: 'dialog.js',
    //增加以下庫配置信息
    library: 'Dialog',
    libraryTarget: 'umd',
    umdNamedDefine: true
}
  1. 安裝庫,國內(nèi)環(huán)境建議使用 cnpm 安裝速度會快些
npm install -g cnpm --registry=https://registry.npm.taobao.org
  1. 編譯插件
npm run build
  1. 發(fā)布插件,確定你的插件名當(dāng)前公共庫中不存在,否則會發(fā)布失敗
npm publish

個人原創(chuàng)內(nèi)容,轉(zhuǎn)載請說明出處

完整內(nèi)容:https://github.com/TerryZ

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,562評論 19 139
  • 1 Webpack 1.1 概念簡介 1.1.1 WebPack是什么 1、一個打包工具 2、一個模塊加載工具 3...
    Kevin_Junbaozi閱讀 7,022評論 0 16
  • 寫在開頭 先說說為什么要寫這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,442評論 4 31
  • 一男孩在地鐵里辱罵女孩的視頻經(jīng)薛之謙轉(zhuǎn)發(fā)后,火遍了微博,當(dāng)然也傳遍了各種微信群,人們無不義憤填膺,表達(dá)自己憤慨,咒...
    郭恒在閱讀 238評論 0 0
  • 剛剛和一個連續(xù)工作了三天三夜的小學(xué)同學(xué)交談完,我告訴他,我準(zhǔn)備辭職,他問我去哪,我說不知道,然后他試圖勸說...
    我就是驕傲閱讀 249評論 0 1

友情鏈接更多精彩內(nèi)容