最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

rollup打包vue組件并發(fā)布到npm的方法

 更新時(shí)間:2023年05月25日 11:57:40   作者:UzumakiHan  
這篇文章主要介紹了rollup打包vue組件并發(fā)布到npm,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

個(gè)人認(rèn)為rollup在打包組件的實(shí)現(xiàn)方式比用webpack方便,webpack應(yīng)該是比較適合打包大型的工程項(xiàng)目,而rollup適合打包一些平時(shí)在項(xiàng)目中的組件

rollup中文文檔:簡(jiǎn)介 | rollup.js 中文文檔 | rollup.js中文網(wǎng) (rollupjs.com)

這次打包一個(gè)滾動(dòng)加載更多的組件,因?yàn)槠綍r(shí)用vant是vant-list 會(huì)遇到一些問(wèn)題,例如滾動(dòng)到底部沒(méi)有觸發(fā)加載更多邏輯。

首先在項(xiàng)目根目錄安裝rollup

npm i rollup -D

安裝一些rollup常用到的plugins

基本的工程化插件

  • @rollup/plugin-node-resolve 幫助 rollup 識(shí)別外部模塊
  • @rollup/plugin-babel   babel插件 將es6+轉(zhuǎn)為es5
  • rollup-plugin-copy  直接復(fù)制靜態(tài)文件
  • @rollup/plugin-terser 壓縮代碼
  • @rollup/plugin-commonjs 將commonjs模塊轉(zhuǎn)為es模塊
  • @rollup/plugin-typescript  typescript插件
  • @rollup/plugin-alias 路徑別名
npm i @rollup/plugin-babel @rollup/plugin-commonjs @rollup/plugin-node-resolve @rollup/plugin-terser rollup-plugin-vue @rollup/plugin-typescript @babel/core - D

處理Vue文件

rollup-plugin-vue 

用于處理.vue文件。vue2和vue3項(xiàng)目所用的rollup-plugin-vue版本不一樣,vue的編譯器也不一樣。

  • vue2:rollup-plugin-vue^5.1.9 + vue-template-compiler
  • vue3:rollup-plugin-vue^6.0.0 + @vue/compiler-sfc
npm i vue-template-compiler @vue/compiler-sfc -D

vue2和vue3版本的plugins可以這樣在devDependencies中指定,,然后npm install

"devDependencies":{
    "rollup-plugin-vue2": "npm:rollup-plugin-vue@^5.1.9",
    "rollup-plugin-vue3": "npm:rollup-plugin-vue@^6.0.0",
}

打包CSS插件

rollup-plugin-postcss 識(shí)別css和預(yù)處理文件 (如果css,rollup-plugin-postcss需要配合sass使用)

這里我以分別vue2和vue3各創(chuàng)建一個(gè)rollup.config.js

vue2-----rollup.vue2.config.js,配置如下

import resolve from '@rollup/plugin-node-resolve';
import vue2 from 'rollup-plugin-vue2';
import babel from '@rollup/plugin-babel';
import commonjs from '@rollup/plugin-commonjs';
import terser from '@rollup/plugin-terser';
import json from '@rollup/plugin-json';
import postcss from 'rollup-plugin-postcss'
import typescript from "@rollup/plugin-typescript";
export default {
    input: 'src/index.ts',
    output: {
        globals: {
            vue: "Vue"
        }
    },
    plugins: [
        resolve(),
        typescript(),
        terser(),
        json(),
        vue2({
            css: true,
            compilerTemplate: true,
            preprocessStyles: true
        }),
        babel({
            exclude: "**/node_modules/**"
        }),
        commonjs(),
        postcss()
    ]
}

vue3-----rollup.vue3.config.js,配置如下

import resolve from '@rollup/plugin-node-resolve';
import vue3 from 'rollup-plugin-vue3';
import babel from '@rollup/plugin-babel';
import commonjs from '@rollup/plugin-commonjs';
import terser from '@rollup/plugin-terser';
import json from '@rollup/plugin-json';
import postcss from 'rollup-plugin-postcss'
import typescript from '@rollup/plugin-typescript';
export default {
    input: 'src/index.ts',
    output: {
        globals: {
            vue: "Vue"
        }
    },
    plugins: [
        resolve(),
        typescript(),
        terser(),
        json(),
        vue3({
            css: true,
            compilerTemplate: true,
            preprocessStyles: true
        }),
        babel({
            exclude: "**/node_modules/**"
        }),
        commonjs(),
        postcss()
    ]
}

配置打包命令,這里我把cjs、umd、es、iife都分別打包出來(lái)了

"scripts": {
    "build": "npm run build:vue3 && npm run build:vue2",
    "build:vue2": "rimraf dist/vue2/* && npm run build:umdvue2 && npm run build:esvue2 && npm run build:unpkgvue2 && npm run build:cjsvue2",
    "build:umdvue2": "rollup -c rollup.vue2.config.js --format umd --name mList --file dist/vue2/index.umd.js",
    "build:esvue2": "rollup -c rollup.vue2.config.js --format es --file dist/vue2/index.esm.js",
    "build:unpkgvue2": "rollup -c rollup.vue2.config.js --format iife --file dist/vue2/index.min.js",
    "build:cjsvue2": "rollup -c rollup.vue2.config.js --format cjs --file dist/vue2/index.cjs.js",
    "build:vue3": "rimraf dist/vue3/* && npm run build:umdvue3 && npm run build:esvue3 && npm run build:unpkgvue3 && npm run build:cjsvue3",
    "build:umdvue3": "rollup -c rollup.vue3.config.js --format umd --name mList --file dist/vue3/index.umd.js",
    "build:esvue3": "rollup -c rollup.vue3.config.js --format es --file dist/vue3/index.esm.js",
    "build:unpkgvue3": "rollup -c rollup.vue3.config.js --format iife --file dist/vue3/index.min.js",
    "build:cjsvue3": "rollup -c rollup.vue3.config.js --format cjs --file dist/vue3/index.cjs.js"
  },

 打包后的文件

 然后可以發(fā)布到npm

npm地址:hfex-list - npm (npmjs.com)

github地址:UzumakiHan/hfex-list: 下拉加載更多組件 (github.com)

到此這篇關(guān)于rollup打包vue組件并發(fā)布到npm的文章就介紹到這了,更多相關(guān)rollup打包vue組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決vue的過(guò)渡動(dòng)畫無(wú)法正常實(shí)現(xiàn)問(wèn)題

    解決vue的過(guò)渡動(dòng)畫無(wú)法正常實(shí)現(xiàn)問(wèn)題

    今天小編就為大家分享一篇解決vue的過(guò)渡動(dòng)畫無(wú)法正常實(shí)現(xiàn)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • 探秘vue-rx 2.0(推薦)

    探秘vue-rx 2.0(推薦)

    這篇文章主要介紹了探秘vue-rx 2.0(推薦),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • el-popover如何通過(guò)js手動(dòng)控制彈出框顯示、隱藏

    el-popover如何通過(guò)js手動(dòng)控制彈出框顯示、隱藏

    最近項(xiàng)目中多次用到了Popover彈出框,下面這篇文章主要給大家介紹了關(guān)于el-popover如何通過(guò)js手動(dòng)控制彈出框顯示、隱藏的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • vue3.0 Reactive數(shù)據(jù)更新頁(yè)面沒(méi)有刷新的問(wèn)題

    vue3.0 Reactive數(shù)據(jù)更新頁(yè)面沒(méi)有刷新的問(wèn)題

    這篇文章主要介紹了vue3.0 Reactive數(shù)據(jù)更新頁(yè)面沒(méi)有刷新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue?中使用?bimface詳情

    vue?中使用?bimface詳情

    這篇文章主要介紹了vue?中使用?bimface詳情,分別有安裝?vue?腳手架、創(chuàng)建項(xiàng)目、引入?bimface?響應(yīng)的文件、修改?App.vue?文件,實(shí)現(xiàn)頁(yè)面渲染等步驟,需要的小伙伴可以參考一下
    2021-12-12
  • vue2.0 根據(jù)狀態(tài)值進(jìn)行樣式的改變展示方法

    vue2.0 根據(jù)狀態(tài)值進(jìn)行樣式的改變展示方法

    下面小編就為大家分享一篇vue2.0 根據(jù)狀態(tài)值進(jìn)行樣式的改變展示方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Vue3組件更新中的DOM?diff算法示例詳解

    Vue3組件更新中的DOM?diff算法示例詳解

    虛擬dom是當(dāng)前前端最流行的兩個(gè)框架(vue和react)都用到的一種技術(shù),都說(shuō)他能幫助vue和react提升渲染性能,提升用戶體驗(yàn),下面這篇文章主要給大家介紹了關(guān)于Vue3組件更新中的DOM?diff算法的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • vite(vue3)配置內(nèi)網(wǎng)ip訪問(wèn)的方法步驟

    vite(vue3)配置內(nèi)網(wǎng)ip訪問(wèn)的方法步驟

    Vite是一個(gè)快速的構(gòu)建工具,Vue3是一個(gè)流行的JavaScript框架,下面這篇文章主要給大家介紹了關(guān)于vite(vue3)配置內(nèi)網(wǎng)ip訪問(wèn)的方法步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue實(shí)現(xiàn)卡片遮罩層交互式功能

    vue實(shí)現(xiàn)卡片遮罩層交互式功能

    在前端開發(fā)中,卡片遮罩層是一種常見的交互設(shè)計(jì)元素,用于強(qiáng)調(diào)某個(gè)區(qū)域或內(nèi)容,并提供用戶操作的入口,本文將帶大家在?vue?中結(jié)合實(shí)際案例實(shí)現(xiàn)此功能,感興趣的朋友一起看看吧
    2024-08-08
  • vue簡(jiǎn)單練習(xí) 桌面時(shí)鐘的實(shí)現(xiàn)代碼實(shí)例

    vue簡(jiǎn)單練習(xí) 桌面時(shí)鐘的實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了vue簡(jiǎn)單練習(xí) 桌面時(shí)鐘的實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值的相關(guān)資料,需要的朋友可以參考下
    2019-09-09

最新評(píng)論

海口市| 炉霍县| 海晏县| 茶陵县| 宜城市| 景洪市| 六安市| 颍上县| 大荔县| 固始县| 泸定县| 朔州市| 同德县| 揭西县| 荆门市| 五台县| 河西区| 杭锦后旗| 佛坪县| 高淳县| 遵化市| 竹山县| 安庆市| 南靖县| 株洲县| 巍山| 淮阳县| 凤翔县| 都江堰市| 阿克苏市| 郓城县| 新巴尔虎右旗| 乡城县| 长阳| 吐鲁番市| 马关县| 巴彦淖尔市| 铜梁县| 通州区| 迭部县| 九江县|