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

手把手教你更優(yōu)雅的修改node_modules里的代碼

 更新時間:2023年02月03日 10:01:26   作者:leal_朝  
這篇文章主要給大家介紹了關(guān)于如何更優(yōu)雅的修改node_modules里的代碼的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

為什么要改node_modules?

在開發(fā)中,如果有必要修改node_modules里的代碼,有哪幾種方法呢?哪種方法最好呢?

第一種:直接改

這種很容易理解,就是直接進node_modules中,找到相關(guān)包的代碼,并修改相應(yīng)位置代碼,然后重啟項目即可。

但是這樣做存在如下弊端:

  • 只能是你自己本地用你修改的代碼,其他人用不了;
  • 下次npm install 之后之前修改的代碼都會恢復(fù)原狀;

第二種:獨立維護一個包

假如我使用了包A,它限制了上傳文件的格式,但是我的業(yè)務(wù)要求是放開所有限制,此時我可以這樣:在原有包的基礎(chǔ)上copy一個包B,,修改相關(guān)代碼后把包B推送到npm上,此時我的項目中不需要原來的包了,用我剛維護的包B就可以了,這樣就可以達到效果。以前我也是這么做的。這樣做的缺點就是會增加維護的成本,當然個人認為這種成本可以忽略不計,因為我改完后很長時間從來沒有再次改動過。

第三種: patch-package

這是一個專門用來修改node_modules中包的代碼的工具,使用方式也很簡單:

1、安裝patch-package

npm i patch-package

2、修改node_modules

比如我想修改包A,那么我直接在node_modules中修改,然后執(zhí)行

npx patch-package A

這時候你的根目錄下就會出現(xiàn)patches這個目錄,里面會出現(xiàn)一個包A的補丁文件,這個文件大有用處!

注意:記得要把 patches 這個目錄提交到git或者svn

這個時候你本地已經(jīng)使用到了你修改后的代碼了。那現(xiàn)在的問題是怎么讓其他人也同步到你修改后的代碼。

3、“postinstall”:“patch-package”

在package.json的script中增加:

"postinstall": "patch-package"

這個命令的作用就是:當執(zhí)行npm install的時候,會自動執(zhí)行npm run postinstall這個命令,也就是執(zhí)行patch-package,這時候就會去讀取上面說的 patches目錄,并將那些補丁打到對應(yīng)的包里,達到同步修改代碼的效果??!

以上幾種修改 node_modules源碼的方式,與諸君共享!

補充:修改了node_modules的文件打包后不生效

原因是我們修改的雖然是源碼,并且在我們本地測試的時候生效,但我們打包后引用的是node_modules編譯打包后的文件

問題出在node_modules分為兩個部分:一個是組件的源碼文件,一個是編譯打包后的文件

如果想要解決這個問題,我們可以把想要修改的文件單獨復(fù)制一份出來放到需要使用的文件夾,并且更改主文件中的引用路徑,簡單來說即不引用node_modules里的文件,引用拉出來的那份文件

修改

import 組件名 form '從node_modules里復(fù)制出來的文件的位置'

總結(jié)

到此這篇關(guān)于手把手教你更優(yōu)雅的修改node_modules里的代碼的文章就介紹到這了,更多相關(guān)修改node_modules代碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Node.js制作爬取大眾點評的爬蟲

    利用Node.js制作爬取大眾點評的爬蟲

    相信每位用過大眾點評的人都知道,大眾點評上有很多美食餐館的信息,所以這篇文章給大家分享利用Node.js實現(xiàn)爬取大眾點評的爬蟲,正好可以拿來練練手Node.js。感興趣的可以參考借鑒。
    2016-09-09
  • node 版本切換的實現(xiàn)

    node 版本切換的實現(xiàn)

    這篇文章主要介紹了node 版本切換的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Node.js中處理特殊字符的文件名解決方案

    Node.js中處理特殊字符的文件名解決方案

    在Node.js中,通過path模塊提供的basename方法,我們可以輕松地從文件路徑中提取文件名,在這篇文章中,我們將介紹一種安全穩(wěn)妥的方法,結(jié)合使用dirname和長度計算,以處理特殊字符的文件名,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • node.js Promise對象的使用方法實例分析

    node.js Promise對象的使用方法實例分析

    這篇文章主要介紹了node.js Promise對象的使用方法,結(jié)合實例形式分析了node.js中Promise對象的功能、定義、調(diào)用方法及相關(guān)使用技巧,需要的朋友可以參考下
    2019-12-12
  • Node.js基礎(chǔ)入門之path模塊,url模塊,http模塊使用詳解

    Node.js基礎(chǔ)入門之path模塊,url模塊,http模塊使用詳解

    這篇文章主要為大家介紹了Node.js中的三個模塊(path、url、http)的使用詳解,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-03-03
  • 如何優(yōu)雅地在Node應(yīng)用中進行錯誤異常處理

    如何優(yōu)雅地在Node應(yīng)用中進行錯誤異常處理

    這篇文章主要介紹了如何優(yōu)雅地在Node應(yīng)用中進行錯誤處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • node.js中的fs.openSync方法使用說明

    node.js中的fs.openSync方法使用說明

    這篇文章主要介紹了node.js中的fs.openSync方法使用說明,本文介紹了fs.openSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node學(xué)習(xí)筆記:Node.js安裝及環(huán)境配置 史詩級詳細版【含測試與鏡像說明】

    Node學(xué)習(xí)筆記:Node.js安裝及環(huán)境配置 史詩級詳細版【含測試與鏡像說明】

    這篇文章主要介紹了Node學(xué)習(xí)筆記之Node.js安裝及環(huán)境配置方法,詳細分析了node.js的基本安裝、配置、環(huán)境變量設(shè)置、以及環(huán)境測試與鏡像使用說明,需要的朋友可以參考下
    2023-05-05
  • Node.js中的緩沖與流模塊詳細介紹

    Node.js中的緩沖與流模塊詳細介紹

    這篇文章主要介紹了Node.js中的緩沖與流模塊詳細介紹,本文講解了緩沖(buffer)模塊、類:Buffer、寫入緩沖區(qū)、復(fù)制緩沖區(qū)、流模塊等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • node.js中使用node-schedule實現(xiàn)定時任務(wù)實例

    node.js中使用node-schedule實現(xiàn)定時任務(wù)實例

    這篇文章主要介紹了node.js中使用node-schedule實現(xiàn)定時任務(wù)實例,包括安裝方法和4種使用例子,需要的朋友可以參考下
    2014-06-06

最新評論

灵武市| 和田县| 溧水县| 高邑县| 加查县| 宝丰县| 长岛县| 修文县| 徐州市| 高邑县| 拉孜县| 青阳县| 五大连池市| 松潘县| 桦川县| 天津市| 扎赉特旗| 合阳县| 河北省| 光泽县| 库尔勒市| 图们市| 包头市| 琼海市| 张家口市| 肥西县| 大城县| 开原市| 托克逊县| 湘潭县| 永寿县| 都兰县| 衡阳市| 迭部县| 嘉兴市| 乐平市| 黄骅市| 绵阳市| 嵊泗县| 徐汇区| 日土县|