亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Vue插件打包與發布的方法示例

2019-11-19 13:12:24
字體:
來源:轉載
供稿:網友

插件打包與發布

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

1、創建 dialog 目錄,并進入

2、運行命令行,初始化項目,生成 package.json

npm init -y

3、使用 webpack-simple 模板構建項目基本結構(前提為已自行安裝好 vue-cli)

vue init webpack-simple

根據導航提示,設置好項目后,基本結構生成完成

4、刪除無用內容   刪除 index.html 和 src 目錄下的所有文件

5、復制插件內容到 src 目錄中

6、修改 package.json 配置內容

{ "name": "dialog", "description": "the dialog plguin", "version": "1.0.0", "author": "TerryZ <terry5@foxmail.com>", "license": "MIT", //刪除原有的"priveate": true,發布到公共庫的項目,不能設置該參數 //增加 main 配置,設置插件在安裝后的主入口文件 "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" }, //增加插件關鍵字描述,非必須,按需設置 "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" }}

7、修改 webpack.config.js 的 output 部分配置

output: {  path: path.resolve(__dirname, './dist'),  publicPath: '/dist/',  //修改輸出打包后的腳本文件名,該文件即是 package.json 中配置的 main 屬性的對應文件  filename: 'dialog.js',  //增加以下庫配置信息  library: 'Dialog',  libraryTarget: 'umd',  umdNamedDefine: true}

8、安裝庫,國內環境建議使用 cnpm 安裝速度會快些

npm install -g cnpm --registry=https://registry.npm.taobao.org

9、編譯插件

npm run build

10、發布插件,確定你的插件名當前公共庫中不存在,否則會發布失敗

npm publish

圖片資源打包

插件中使用到的圖片資源,在打包后,根據模板的默認配置,會將圖片資源輸出到 dist 目錄中,此時就有圖片引用路徑問題。在樣式內容中會發現原來設置的

background-image:url('../image/a.jpg')

會轉換成

background-image:url('/dist/a.jpg')

實際的完整路徑即是

http://xxx.com/dist/a.jpg

我們知道插件在安裝后,會統一安裝在 node_modules 目錄中,這樣的目錄顯然是不正確的

一種折中的辦法,就是將圖片資源轉換成 base64 編碼,不生成實體圖片

webpack-simple 中默認使用 file-loader 來處理圖片,這里換成 url-loader,兩者的區別在于后者是前者的功能封裝,還增加了將圖片編碼為 base64 的功能,所以可以放心使用

安裝 url-loader

npm i url-loader --save-dev

webpack 配置修改(webpack-simple 模板)

module.exports = { ... module: {  rules: [   {...},   {    test: //.(png|jpg|gif|svg)$/,    loader: 'url-loader',    options: {     limit: 30000,     name: '[name].[ext]?[hash]'    }   }  ] }, ...}

上面的配置中,將原 file-loader 更換了 url-loader,并增加 limit 參數,該參數設置了圖片容量在小于指定容量(上例設置為30kb)時,不會轉換成 base64

如此調整配置后,再運行編譯

npm run build

會發現編譯到 dist 目錄中的內容已經沒有圖片文件,只有編譯完成的 build.js 和對應的 map 文件,所以在插件開發時,盡可能使用 CSS 處理樣式,需要使用到圖片或圖標資源,盡可能也使用圖片尺寸小的圖片,方便打包處理

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩成人中文电影| 欧美性猛交xxxx黑人猛交| 亚洲精品国产欧美| 亚洲第一精品夜夜躁人人爽| 欧美性生交大片免网| 九九热这里只有精品免费看| 5566成人精品视频免费| 国产精品普通话| 91av网站在线播放| 欧美大片大片在线播放| 国产69精品99久久久久久宅男| 日本精品视频在线| 全色精品综合影院| 久久成年人视频| 亚洲日本中文字幕免费在线不卡| 亚洲成色777777在线观看影院| 91色p视频在线| 国模精品系列视频| 国产精品视频一区国模私拍| 欧美又大粗又爽又黄大片视频| 欧美日韩国产一区在线| 国产精品视频资源| 亚洲精品中文字| 欧美一级大片在线观看| 国产欧美最新羞羞视频在线观看| 国产盗摄xxxx视频xxx69| 欧美精品一本久久男人的天堂| 欧美黑人极品猛少妇色xxxxx| 啪一啪鲁一鲁2019在线视频| 亚洲一二在线观看| 日韩欧美在线视频| 美女扒开尿口让男人操亚洲视频网站| 亚洲男人第一网站| 欧美日韩中文字幕在线视频| 日本韩国在线不卡| 日韩网站在线观看| 色哟哟亚洲精品一区二区| 91影院在线免费观看视频| 欧美视频专区一二在线观看| 精品视频9999| 国产精品十八以下禁看| 91精品视频在线看| 性色av一区二区三区在线观看| 日韩在线观看你懂的| 日韩av电影在线网| 久久久久久噜噜噜久久久精品| 2024亚洲男人天堂| 成人午夜在线影院| 91探花福利精品国产自产在线| 91社区国产高清| 日韩麻豆第一页| 亚洲国产日韩欧美在线图片| 亚洲影影院av| 国产精品丝袜久久久久久高清| 国产精品99久久99久久久二8| 亚洲国产精品电影在线观看| 97av在线播放| 欧美国产一区二区三区| 大胆欧美人体视频| 欧美性生活大片免费观看网址| 青青a在线精品免费观看| 亚洲精品福利免费在线观看| 91亚洲精华国产精华| 午夜精品久久久久久99热软件| 日韩精品亚洲精品| 少妇高潮久久久久久潘金莲| 欧美成人一区在线| 国产69久久精品成人| 亚洲a∨日韩av高清在线观看| 国产日韩精品综合网站| 精品国产乱码久久久久久婷婷| 国产午夜精品美女视频明星a级| 日韩在线视频免费观看| 在线成人激情黄色| 日韩av电影在线免费播放| 欧美性猛交99久久久久99按摩| 日本欧美爱爱爱| 日韩中文字幕免费| 国产亚洲美女久久| 国产日韩欧美在线| 精品偷拍一区二区三区在线看| 亚洲精品一区中文字幕乱码| 国产成人精品一区二区| 国产高清视频一区三区| 亚洲一区www| 亚洲片在线资源| 国内精品久久久久久影视8| 日韩在线视频观看| 伊人一区二区三区久久精品| 色偷偷亚洲男人天堂| 91tv亚洲精品香蕉国产一区7ujn| 一级做a爰片久久毛片美女图片| 日本免费一区二区三区视频观看| 日本高清视频一区| 日韩av在线免费| 538国产精品视频一区二区| 欧美激情a在线| 91在线无精精品一区二区| 日韩成人网免费视频| 欧美与黑人午夜性猛交久久久| 亚洲自拍偷拍视频| 国产精品成人v| 国产精品久久久av久久久| 高清欧美性猛交xxxx黑人猛交| 91精品久久久久久久久不口人| 国产成人精品久久亚洲高清不卡| 日韩亚洲欧美中文高清在线| 亚洲男女自偷自拍图片另类| 久久精品91久久香蕉加勒比| 国产精品视频一区二区三区四| 国产在线高清精品| 国产精品久久久久高潮| 中文在线资源观看视频网站免费不卡| 亚洲欧洲自拍偷拍| 日韩欧美黄色动漫| 久久久精品电影| 91精品国产高清自在线| 中文字幕亚洲国产| 欧美性黄网官网| 在线观看亚洲区| 久久久久久噜噜噜久久久精品| 国产欧美精品一区二区| 91在线免费视频| 欧美成人中文字幕| 欧美激情一区二区三区成人| 国产精品 欧美在线| 亚洲成人久久一区| 中文字幕亚洲欧美| 欧美成人免费在线观看| 日本欧美精品在线| 成人在线视频网站| 欧美成人免费网| 国产在线视频2019最新视频| 欧美日韩精品在线视频| 国产精品免费视频久久久| 亚洲va久久久噜噜噜久久天堂| 亚洲精品久久久久久下一站| 欧美国产日韩免费| 国模gogo一区二区大胆私拍| 亚洲精品mp4| 国产精品第七影院| 色综合伊人色综合网| 欧美精品久久久久久久久| 日本成熟性欧美| 2018国产精品视频| 亚洲国产欧美久久| 日本精品视频在线播放| 成人乱人伦精品视频在线观看| 丝袜美腿精品国产二区| 欧亚精品在线观看| 国产成人精品视频在线观看| 久久综合久久美利坚合众国| 日韩在线视频一区| 8050国产精品久久久久久| 日韩av在线一区| 亚洲成色777777女色窝| 亚洲精品丝袜日韩| 亚洲欧美日韩另类| 日韩经典中文字幕| 精品高清一区二区三区| 亚洲综合中文字幕在线| 日日狠狠久久偷偷四色综合免费| 国产精品扒开腿做爽爽爽视频| 亚洲精品456在线播放狼人|