国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

通過nodejs修改node_modules中的源碼

這篇具有很好參考價(jià)值的文章主要介紹了通過nodejs修改node_modules中的源碼。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在開發(fā)項(xiàng)目時(shí),當(dāng)node_modules中的默認(rèn)配置不滿足當(dāng)前項(xiàng)目需求時(shí),就需要對node_modules中相應(yīng)的源碼進(jìn)行修改。但如果直接操作源碼進(jìn)行手動(dòng)修改,代碼不會同步到倉庫中,當(dāng)其他人拉取代碼進(jìn)行開發(fā)時(shí),或者執(zhí)行了npm install后源碼依舊是默認(rèn)配置。而此時(shí)則可以通過nodejs對源碼進(jìn)行操作,可以滿足當(dāng)前需求。

第一步:創(chuàng)建用來存放修改后內(nèi)容的文件目錄

創(chuàng)建文件夾change_modules,用來存放修改后的文件內(nèi)容,但修改后的文件目錄需要和node_modules中被修改的文件目錄一致。例如被修改的文件xmllint.js所在目錄是:node_modules/@wepy/cli/core/util/xmllint.js,則新建的文件目錄應(yīng)當(dāng)為:change_modules/@wepy/cli/core/util/xmllint.js,如圖

通過nodejs修改node_modules中的源碼

第二步:修改內(nèi)容

只需將被修改的文件中的所有內(nèi)容粘貼到change_modules中對應(yīng)的目錄中,然后對需要更改的地方進(jìn)行修改。

第三步:執(zhí)行復(fù)制 | 替換

新建change_modules.js文件,此文件中存放的是文件替換的相關(guān)語法

const fs = require('fs')
const path = require('path')

// 將 change_modules 內(nèi)的文件覆蓋在node_modules中
const REAL_NODE_MODULES = path.resolve('./node_modules') // 舊node_modules
const MY_NODE_MODULES = path.resolve('./change_modules') // 新node_modules
copy(MY_NODE_MODULES, REAL_NODE_MODULES)

/**
*@param{string}需要復(fù)制的目錄、文件
*@param{string}復(fù)制到指定的目錄、文件
*@param{function}每次復(fù)制前,都會經(jīng)過一次filterFn,若返回true,則復(fù)制。
*/
function copy(origin, target, filterFn = () => true) {
  if (fs.statSync(origin).isDirectory()) {
    if (!fs.existsSync(target)) {
      fs.mkdirSync(target)
    }
    fs.readdirSync(origin).forEach(originName => {
      const originFilePath = path.resolve(origin, originName)
      const targetFilePath = path.resolve(target, originName)
      copy(originFilePath, targetFilePath, filterFn)
    })
  } else if (filterFn(origin, target)) {
    //執(zhí)行替換
    fs.copyFileSync(origin, target)
  }
}

第四步:修改package.json

在package.json中添加執(zhí)行change_modules.js的語法,使得項(xiàng)目運(yùn)行前執(zhí)行change_modules.js替換相應(yīng)文件,如圖:?

通過nodejs修改node_modules中的源碼

執(zhí)行以上操作后,運(yùn)行項(xiàng)目則大功告成!

相關(guān)nodejs語法詳解

require('fs') :fs模塊為nodejs的核心模塊之一,主要處理文件的讀寫、復(fù)制、刪除、重命名等操作。當(dāng)需要使用該模塊時(shí),需要先導(dǎo)入該文件。

path.resolve():?該方法將路徑/路徑段解析為絕對路徑。

fs.statsync(path):接收一個(gè)path變量,可獲取到路徑的詳細(xì)信息。

isDirectory():判斷是否是目錄,目錄返回true,文件返回false。

fs.existsSync(path):檢測指定路徑是否存在。

fs.mkdirSync(path):用于創(chuàng)建目錄。

fs.readdirSpath(path):獲取指定目錄下所有文件名稱。

fs.copyFileSpath(beforePath,newPath):用于將文件從源路徑同步復(fù)制到目標(biāo)路徑。文章來源地址http://www.zghlxwxcb.cn/news/detail-448070.html

到了這里,關(guān)于通過nodejs修改node_modules中的源碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue修改node_modules打補(bǔ)丁步驟和注意事項(xiàng)

    vue修改node_modules打補(bǔ)丁步驟和注意事項(xiàng)

    當(dāng)我們使用 npm 上的第三方依賴包,如果發(fā)現(xiàn) bug 時(shí),怎么辦呢? 想想我們在使用第三方依賴包時(shí)如果遇到了bug,通常解決的方式都是繞過這個(gè)問題,使用其他方式解決,較為麻煩?;蛘呓o作者提個(gè)issue,然后等待作者的修復(fù),等待的時(shí)間不可控。那么這時(shí)候是不是就可以借助

    2024年02月04日
    瀏覽(23)
  • node_modules插件代碼修改,如何快速修改防止npm install安裝覆蓋代碼

    node_modules插件代碼修改,如何快速修改防止npm install安裝覆蓋代碼

    有些組件不滿足業(yè)務(wù)時(shí)咱們只能修改插件的源碼: 直接在項(xiàng)目的node_modules下找到插件的源碼直接修改; 優(yōu)點(diǎn):簡單直接、快速見效; 缺點(diǎn):不能持久化,一旦重新npm install安裝就失效;不方便團(tuán)隊(duì)成員使用修改后的代碼; 去github上fork代碼到自己的倉庫進(jìn)行修改,并將自己修

    2024年02月09日
    瀏覽(27)
  • 深入淺出Node.js中的node_modules

    深入淺出Node.js中的node_modules

    在Node.js中, node_modules 是一個(gè)特殊的目錄,通常用來存放項(xiàng)目所依賴的 npm 包及其相關(guān)依賴,以供應(yīng)用程序在運(yùn)行時(shí)動(dòng)態(tài)加載所需的模塊和庫文件。 當(dāng)使用 npm 或者 yarn 等包管理工具安裝npm包時(shí),會將相關(guān)依賴包下載并保存在項(xiàng)目的 node_modules 目錄下,以便于在應(yīng)用程序中引用

    2024年02月06日
    瀏覽(25)
  • node修改版本、npm修改版本、yarn無法加載文件、node_modules\sharp: Command failed解決方法

    node修改版本、npm修改版本、yarn無法加載文件、node_modules\sharp: Command failed解決方法

    1、node修改版本 步驟1:從node官網(wǎng)下載node壓縮包或者exe文件 如果是下載的是exe文件就直接找到原來的node.exe文件替換掉就可以了,環(huán)境變量配置不變 如果是下載的node壓縮包,需要解壓后,修改本地的環(huán)境變量配置(查看步驟2) 找到對應(yīng)要下載的版本,這里我選擇的10 相對應(yīng)

    2024年02月13日
    瀏覽(38)
  • git配置修改.gitignore不上傳node_modules文件目錄到gitee碼云

    git配置修改.gitignore不上傳node_modules文件目錄到gitee碼云

    如果創(chuàng)建的vue或者uni項(xiàng)目,自動(dòng)會有依賴包node_modules,如果不去設(shè)置.gitignore,那么會默認(rèn)將該文件夾下面所有的文件進(jìn)行上傳,這樣整個(gè)包非常大非常碎,別人使用起來很麻煩,正常來講只要把主要文件下載下來,其他人只需要npm i一下就行了,那么怎么解決那。 第一行就是

    2024年02月13日
    瀏覽(32)
  • Error: Cannot find module E:\nodejs\node_modules\npm\bin\npm-cli.js

    Error: Cannot find module E:\nodejs\node_modules\npm\bin\npm-cli.js

    在用node開發(fā)服務(wù)器端的時(shí)候,發(fā)現(xiàn)用npm下載一個(gè)插件,成功之后,再用npm命令進(jìn)行相關(guān)操作,報(bào)錯(cuò)了Error: Cannot find module E:nodejsnode_modulesnpmbinnpm-cli.js。 這個(gè)錯(cuò)誤翻譯過來就是說:找不到nodejsnode_modulesnpmbinnpm-cli.js這個(gè)路徑對應(yīng)的文件了,跑我的E盤看的時(shí)候,確實(shí)npm文件

    2024年02月08日
    瀏覽(101)
  • vscode設(shè)置可以搜索包含node_modules中的文件

    vscode設(shè)置可以搜索包含node_modules中的文件

    步驟3中刪除掉node_modules,再搜索的時(shí)候,node_modules的匹配到代碼也會展示出來了。 如果不想要被搜索文件包含node_modules,再添加上就可以。 ?

    2024年02月16日
    瀏覽(16)
  • npm命令刪除開發(fā)項(xiàng)目中的node_modules文件夾

    1.使用rimraf: 2.使用npx: 3.使用npm自帶的命令: 如果你只是想卸載某個(gè)特定的依賴包(比如nodemon),可以使用npm uninstall命令。如果依賴包被列在package.json文件的devDependencies中,則需要使用–save-dev參數(shù) 在npm中,也可以使用npm rm命令刪除node_modules目錄。該命令用于從本地文件

    2024年02月05日
    瀏覽(36)
  • nvm安裝node后,報(bào)錯(cuò)Cannot find module ‘C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js‘

    問題描述 nvm安裝node后,也會自動(dòng)安裝npm工具,但是在提示安裝完成之后,使用npm相關(guān)命令時(shí),會報(bào)如下錯(cuò)誤 Error: Cannot find module \\\'C:Program Filesnodejsnode_modulesnpmbinnpm-cli.js\\\' 原因: 可以查看當(dāng)前node版本? node -v,如v14.18.1,然后去nvm安裝地址中找C:Users10153615AppDataRoamingnvm,

    2024年04月13日
    瀏覽(102)
  • 修改node_modules中安裝的依賴(如第三方ui組件樣式)并在下次安裝時(shí)保留

    修改node_modules中安裝的依賴(如第三方ui組件樣式)并在下次安裝時(shí)保留

    場景:需要修改安裝的某個(gè)ui庫的樣式或者其他依賴,直接去node_modules中修改后,重新安裝,或者其他小伙伴的電腦上并不能同時(shí)修改 方案:用patch-package 可以保留修改 步驟一 安裝 patch-package — npm i patch-package --save 步驟二 配置package.json script加上‘‘postinstall’’:“patch-

    2024年02月08日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包