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

vue之多項(xiàng)目|多工程共用相同組件的思路解讀

 更新時(shí)間:2023年05月24日 10:04:42   作者:搬磚怪  
這篇文章主要介紹了vue之多項(xiàng)目|多工程共用相同組件的思路,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

項(xiàng)目場景

簡單介紹一下目前的項(xiàng)目場景,目前我們有三個vue工程,就是三個vue項(xiàng)目,但是每個項(xiàng)目都有自己的基礎(chǔ)組件庫,但是這些自己封裝的組件庫都一樣,都是CV過去的,但是現(xiàn)在產(chǎn)品不穩(wěn)定,這些基礎(chǔ)的組件庫可能會總改,那么問題就來了,我每次難道都要改三遍嗎?

那也太費(fèi)勁了,所以研究了一下如何在多個vue項(xiàng)目共用一套基礎(chǔ)建設(shè)的組件,這樣我就改一次就行了,不需要改很多次了。

npm簡介 

npm全稱是node package management,接觸過node知道,它是node的包管理工具,我們平時(shí)使用的npm install <安裝的包名>,都是那些作者把自己的項(xiàng)目發(fā)布到Npm上,你才能夠install安裝它,我們這個場景也可以,我把公共的組件抽出來弄成一個工程,完了發(fā)布到npm上,以后用的時(shí)候直接npm install就可以了。但是我放棄了這個選擇,因?yàn)槊看胃膭佣嫉酶陌姹局匦掳l(fā)布很麻煩。

npm文檔

但是這里要介紹一下發(fā)布npm包需要配什么東西,后面會需要這里的配置。

  "name": "pub-fe"
  "version": "0.1.1" //項(xiàng)目版本
  "description": "包描述" //這個包的描述
  "main": "src/main.js", //入口文件,默認(rèn)就是main.js
  "author": "wxs", //作者名字
  "repository": {  //npm去哪里拉去你的項(xiàng)目代碼(這個后面沒用上,)
     "type": "git",
     "url": "git+https://github.com/wangxueshun/pub-fe.git"
   }
``

具體配置

入口文件main.js

//main.js文件
import pubImp from "./packages/pubImp/index.js"
//先把公共組件放在這個數(shù)組里,這里舉列子就寫了一個,有多少個就在數(shù)組里放多少個
const components = [
  pubImp
];
//這里install方法主要是為了以后用vue.use()全局注冊組件,因?yàn)槭腔A(chǔ)組件以后肯定常用,這樣就不用每個頁面都import了,這里不明白的建議百度。
const install = function (Vue) {//這個Vue參數(shù),在Vue調(diào)用install方法的時(shí)候會把Vue傳進(jìn)去
  //這里循環(huán)調(diào)用
  components.forEach(component => {
    component.install(Vue);
  });
};
export default {
  install
}

pubImp文件

我的公共組件工程的結(jié)構(gòu)

pubImp下的index.js文件

import myButton from './src/main.vue'
export default {
    install(Vue) {
        Vue.component("myButton", myButton)
    }
}

現(xiàn)在共用的包已經(jīng)寫好了,那么怎么樣才能在別的工程那樣直接引入到項(xiàng)目中呢?

npm link

在本地開發(fā)npm模塊的時(shí)候,我們可以使用npm link命令,將npm 模塊鏈接到對應(yīng)的運(yùn)行項(xiàng)目中去,方便地對模塊進(jìn)行調(diào)試和測試

1.先到我們的公共包pub-fe中執(zhí)行npm link

這時(shí)候我們的pub-fe這個文件會被連接到全局。

2.在需要pub-fe的地方引入它,執(zhí)行npm link pub-fe,我的項(xiàng)目是spp-fe所以我以這個為例子

這個時(shí)候pub-fe就會映射到spp-fe中的node_modules中,以快捷鍵的方式。

3.這個時(shí)候我們就可以跟引入別的第三方模塊一樣,引入我們的pub-fe.

使用npm link的又一點(diǎn)好處就是,你依賴的包有更新的時(shí)候,可以及時(shí)響應(yīng),不像在npm上發(fā)布的包,每次想下載最新的包都得npm install一下。

探究

那么我這么引入會不會對打包有影響呢?讓我們來探究一下。

一、執(zhí)行npm run serve

我們看一下研發(fā)環(huán)境的打包方式會造成什么影響,我就直接上引入Pub-fe之后的打包圖片了。

可以看到打出來的包pub-fe里引入進(jìn)來了,它里面也會有一些node_modules和它的一些依賴文件,對包的體積影響還是有的,但是這個研發(fā)環(huán)境的打包,webpack對研發(fā)環(huán)境的打包方式跟生產(chǎn)環(huán)境的打包方式是不一樣的,所以這個體積大就大了,我所謂就自己用。

二、執(zhí)行npm run build 生產(chǎn)環(huán)境的打包方式

讓我們看看引入Pub-fe之后對打包的影響。

可以看到這次的pub-fe中依賴的node_modules跟我們的項(xiàng)目都服用上了,不像在研發(fā)環(huán)境中他倆是兩套node_modules,所以這個對生產(chǎn)環(huán)境的打包影響近乎為零。

拓展

你可以通過這種方式進(jìn)行多個工程共用同一個依賴,是最簡單的方式,但這只適合小的團(tuán)隊(duì)使用。

你還可以用npm install +路徑的方式 ,把需要依賴的項(xiàng)目裝到node_modules里,但感覺這種沒npm link好用,每次更新公共依賴的代碼,都需要install一下。

你還可以把公共依賴發(fā)到npm上,這個是最正規(guī)的,但是我覺得太麻煩,如果團(tuán)隊(duì)大的話這么做我覺得挺合適的。

你還可以用npm install +git網(wǎng)址的方式,npm install 支持http,https.等等的方式,這里建議去看一下我最上面提到的Npm官網(wǎng)。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue使用vxe-table實(shí)現(xiàn)數(shù)據(jù)分組的三種方式

    Vue使用vxe-table實(shí)現(xiàn)數(shù)據(jù)分組的三種方式

    本文詳細(xì)介紹了vxe-table在分分展示分組數(shù)據(jù)時(shí)的三種模式:default、column和combined,這些模式可根據(jù)不同業(yè)務(wù)場景靈活切換,滿足不同展示需求,需要的朋友可以參考下
    2026-06-06
  • vue.js利用Object.defineProperty實(shí)現(xiàn)雙向綁定

    vue.js利用Object.defineProperty實(shí)現(xiàn)雙向綁定

    這篇文章主要為大家詳細(xì)介紹了vue.js利用Object.defineProperty實(shí)現(xiàn)雙向綁定,幫大家解析神秘的Object.defineProperty方法
    2017-03-03
  • Vue中的assets和static目錄:使用場景及區(qū)別說明

    Vue中的assets和static目錄:使用場景及區(qū)別說明

    這篇文章主要介紹了Vue中的assets和static目錄:使用場景及區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 在 Vue 中使用 JSX 及使用它的原因淺析

    在 Vue 中使用 JSX 及使用它的原因淺析

    這篇文章主要介紹了在 Vue 中使用 JSX 及使用它的原因淺析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Vue-cli3.x + axios 跨域方案踩坑指北

    Vue-cli3.x + axios 跨域方案踩坑指北

    這篇文章主要介紹了Vue-cli3.x + axios 跨域方案踩坑指北,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • vue監(jiān)聽屬性watch的用法及使用場景詳解

    vue監(jiān)聽屬性watch的用法及使用場景詳解

    watch是vue中常用的監(jiān)聽器,它主要用于偵聽數(shù)據(jù)的變化,在數(shù)據(jù)發(fā)生變化的時(shí)候執(zhí)行一些操作,這篇文章主要介紹了vue監(jiān)聽屬性watch的用法及使用場景的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • Element Input組件分析小結(jié)

    Element Input組件分析小結(jié)

    這篇文章主要介紹了Element Input組件分析小結(jié),詳細(xì)的介紹了Input組件的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • vue中循環(huán)表格數(shù)據(jù)出現(xiàn)數(shù)據(jù)聯(lián)動現(xiàn)象(示例代碼)

    vue中循環(huán)表格數(shù)據(jù)出現(xiàn)數(shù)據(jù)聯(lián)動現(xiàn)象(示例代碼)

    在Vue中循環(huán)生成表格數(shù)據(jù)時(shí),可能會遇到數(shù)據(jù)聯(lián)動的現(xiàn)象,即修改一個表格中的數(shù)據(jù)后,其他表格的數(shù)據(jù)也會跟著變化,這種現(xiàn)象通常是因?yàn)樗斜砀竦臄?shù)據(jù)引用了同一個對象或數(shù)組導(dǎo)致的,本文介紹vue中循環(huán)表格數(shù)據(jù)出現(xiàn)數(shù)據(jù)聯(lián)動現(xiàn)象,感興趣的朋友一起看看吧
    2024-11-11
  • vue中如何給多個按鈕動態(tài)添加類名

    vue中如何給多個按鈕動態(tài)添加類名

    這篇文章主要介紹了vue中如何給多個按鈕動態(tài)添加類名問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Vue3中導(dǎo)航守衛(wèi)結(jié)合Axios實(shí)現(xiàn)token認(rèn)證機(jī)制

    Vue3中導(dǎo)航守衛(wèi)結(jié)合Axios實(shí)現(xiàn)token認(rèn)證機(jī)制

    本文主要介紹了Vue3中導(dǎo)航守衛(wèi)結(jié)合Axios實(shí)現(xiàn)token認(rèn)證機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01

最新評論

天津市| 蕉岭县| 双流县| 诸城市| 津南区| 盱眙县| 湘潭市| 翁牛特旗| 深州市| 随州市| 沅江市| 清苑县| 彩票| 乌拉特后旗| 佛教| 蒙自县| 紫阳县| 黄冈市| 塘沽区| 唐河县| 富锦市| 全州县| 都安| 乡城县| 内乡县| 陇南市| 淅川县| 江孜县| 洞头县| 竹山县| 务川| 宁远县| 北京市| 康保县| 灵石县| 淮滨县| 奎屯市| 交口县| 吉水县| 波密县| 新兴县|