欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

為什么要改node_modules?

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

第一種:直接改

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

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

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

第二種:獨(dú)立維護(hù)一個(gè)包

假如我使用了包A,它限制了上傳文件的格式,但是我的業(yè)務(wù)要求是放開所有限制,此時(shí)我可以這樣:在原有包的基礎(chǔ)上copy一個(gè)包B,,修改相關(guān)代碼后把包B推送到npm上,此時(shí)我的項(xiàng)目中不需要原來的包了,用我剛維護(hù)的包B就可以了,這樣就可以達(dá)到效果。以前我也是這么做的。這樣做的缺點(diǎn)就是會(huì)增加維護(hù)的成本,當(dāng)然個(gè)人認(rèn)為這種成本可以忽略不計(jì),因?yàn)槲腋耐旰蠛荛L(zhǎng)時(shí)間從來沒有再次改動(dòng)過。

第三種: patch-package

這是一個(gè)專門用來修改node_modules中包的代碼的工具,使用方式也很簡(jiǎn)單:

1、安裝patch-package

npm i patch-package

2、修改node_modules

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

npx patch-package A

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

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

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

3、“postinstall”:“patch-package”

在package.json的script中增加:

"postinstall": "patch-package"

這個(gè)命令的作用就是:當(dāng)執(zhí)行npm install的時(shí)候,會(huì)自動(dòng)執(zhí)行npm run postinstall這個(gè)命令,也就是執(zhí)行patch-package,這時(shí)候就會(huì)去讀取上面說的 patches目錄,并將那些補(bǔ)丁打到對(duì)應(yīng)的包里,達(dá)到同步修改代碼的效果?。?/p>

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

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

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

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

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

修改

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

總結(jié)

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

相關(guān)文章

  • Express下采用bcryptjs進(jìn)行密碼加密的方法

    Express下采用bcryptjs進(jìn)行密碼加密的方法

    本篇文章主要介紹了Express下采用bcryptjs進(jìn)行密碼加密的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • nodejs版本管理工具nvm的安裝與使用小結(jié)

    nodejs版本管理工具nvm的安裝與使用小結(jié)

    在項(xiàng)目開發(fā)過程中,使用到vue框架技術(shù),需要安裝node下載項(xiàng)目依賴,本文主要介紹了nodejs版本管理工具nvm的安裝與使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • node.js中TCP Socket多進(jìn)程間的消息推送示例詳解

    node.js中TCP Socket多進(jìn)程間的消息推送示例詳解

    這篇文章主要給大家介紹了關(guān)于node.js中TCP Socket多進(jìn)程間的消息推送的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Node.js + Redis Sorted Set實(shí)現(xiàn)任務(wù)隊(duì)列

    Node.js + Redis Sorted Set實(shí)現(xiàn)任務(wù)隊(duì)列

    本文給大家分享的是使用Node.js + Redis Sorted Set實(shí)現(xiàn)任務(wù)隊(duì)列的方法示例,非常的實(shí)用,有需要的小伙伴可以參考下
    2016-09-09
  • 對(duì)mac下nodejs 更新到最新版本的最新方法(推薦)

    對(duì)mac下nodejs 更新到最新版本的最新方法(推薦)

    今天小編就為大家分享一篇對(duì)mac下nodejs 更新到最新版本的最新方法(推薦),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • node.js express框架簡(jiǎn)介與實(shí)現(xiàn)

    node.js express框架簡(jiǎn)介與實(shí)現(xiàn)

    這篇文章主要介紹了node.js express框架簡(jiǎn)介與實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Node.JS使用Sequelize操作MySQL的示例代碼

    Node.JS使用Sequelize操作MySQL的示例代碼

    Node.JS提供了操作數(shù)據(jù)庫(kù)的基礎(chǔ)接口,本篇文章主要介紹了Node.JS使用Sequelize操作MySQL的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-10-10
  • 用Nodejs實(shí)現(xiàn)在終端中炒股的實(shí)現(xiàn)

    用Nodejs實(shí)現(xiàn)在終端中炒股的實(shí)現(xiàn)

    這篇文章主要介紹了用Nodejs實(shí)現(xiàn)在終端中炒股的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 最流行的Node.js精簡(jiǎn)型和全棧型開發(fā)框架介紹

    最流行的Node.js精簡(jiǎn)型和全棧型開發(fā)框架介紹

    這篇文章主要介紹了最流行的Node.js精簡(jiǎn)型和全棧型開發(fā)框架介紹,本文講解了Express.js、KOA、Total.js、Sails.js、Meteor、Mean.IO等框架,需要的朋友可以參考下
    2015-02-02
  • 在 Node.js 中使用 async 函數(shù)的方法

    在 Node.js 中使用 async 函數(shù)的方法

    利用 async 函數(shù),你可以把基于 Promise 的異步代碼寫得就像同步代碼一樣。一旦你使用 async 關(guān)鍵字來定義了一個(gè)函數(shù),那你就可以在這個(gè)函數(shù)內(nèi)使用 await 關(guān)鍵字。下面通過本文給大家分享Node.js 中使用 async 函數(shù)的方法,一起看看吧
    2017-11-11

最新評(píng)論