vue项目修改node_modules里面的源码,提交到git上别的同事下载代码也需要手动改源码的问题

需求:插件不满足要求,需要修改源码,但是上传代码到git仓库时,我们通常会忽略node_modules文件上传,这样导致另一个同事下载代码时,需要重新npm install,那么下载下来的node_modules文件就是原本的,而不是我们当时修改过的,所以这个时候需要同事也手动修改源码。下面时解决这个问题的方法
具体步骤:
1、在跟目录下新建一个scripts文件夹
2、在新建的scripts建一个代替node_modules的文件夹,取名最好不要叫node_modules(因为上传代码时同样会被忽略),我这里叫new_node_modules
3、把原来node_modules里面的你要修改的插件代码复制一份,粘贴到new_node_modules文件夹里,注意目录结构必须一致
例如:我要修改的是node_modules下面的gojs下面的release下面的go.js文件
在这里插入图片描述
那么我的new_node_modules文件夹的结构就应该是:
在这里插入图片描述
总之目录结构保持一致
4.在新建的scripts文件夹中再建一个change-modules.js文件,
代码内容如下:

const fs = require('fs')

const path = require('path')

// 解决 node_modules 修改源码,导致重新装包而要手动替换源码的重复操作。

// 将 scripts/node_modules 内的文件 覆盖 真正的 node_modules

const REAL_NODE_MODULES = path.resolve('./node_modules') // 旧node_modules

const MY_NODE_MODULES = path.resolve('./scripts/new_node_modules') // 新node_modules

copy(MY_NODE_MODULES, REAL_NODE_MODULES)

/**

*复制目录中的所有文件包括子目录

*@param{string}需要复制的目录、文件

*@param{string}复制到指定的目录、文件

*@param{function}每次复制前,都会经过一次filterFn,若返回true,则复制。

*/

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)) {
    fs.copyFileSync(origin, target)
  }
}

5.在package.json文件添加指令,路径指向你定义的替换方法,如change-modules.js
在这里插入图片描述
在所有需要的时候都要加上change_modules这条指令
6.重新运行项目,这样项目运行的依赖就是你改过的那份拉,别的同事拉取你的代码之后,再下载,也同样会运行你改过的那份代码。

大功告成

  • 14
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 如果你的 Vue 项目没有 node_modules 文件夹,那么你需要先安装依赖。可以使用 npm 或者 yarn 来安装依赖,具体步骤如下: 1. 打开终端或者命令行工具,进入 Vue 项目的根目录。 2. 运行以下命令安装依赖: 使用 npm: ``` npm install ``` 使用 yarn: ``` yarn install ``` 3. 等待依赖安装完成后,就会在项目根目录下生成 node_modules 文件夹,里面包含了项目所需的所有依赖。 注意:在安装依赖的过程,可能会出现网络问题或者其他错误,需要根据具体情况进行排查和解决。 ### 回答2: 如果在Vue项目没有 node_modules 文件夹,则可能会发生以下几种情况: 1. 没有安装依赖包:node_modules 文件夹通常包含项目所需的依赖包。如果没有安装依赖包,则会导致 node_modules 文件夹不存在。您可以通过在命令行运行 "npm install" 命令来安装依赖包。 2. 项目不是基于npm:基于npm的项目会使用 node_modules 文件夹来管理依赖包,但是如果您的项目不是基于npm,则可能没有 node_modules 文件夹。例如,如果您的项目一个简单的 HTML、CSS、JS 应用程序,则可能不需要使用npm,因为应用程序没有任何依赖项。 3. node_modules 文件夹被删除:在某些情况下,node_modules 文件夹可能会被人为删除。如果您不确定文件夹是否被删除,则可以通过重新运行 "npm install" 命令来重新安装依赖项和 node_modules 文件夹。 总之,如果您的Vue项目没有 node_modules 文件夹,则需要检查是否已正确安装依赖项,并确认项目是否基于npm。如果同时遇到其他问题,则可能需要根据具体情况进一步查找解决方案。 ### 回答3: Vue项目缺少node_modules文件夹通常是由于以下几个原因所导致的。 第一个原因可能是你在创建Vue项目时,没有使用正确的命令或缺少必要的参数。通常情况下,使用Vue CLI创建一个新的Vue项目时,通过运行命令"vue create project-name"来创建项目。如果你使用了不同的命令或者缺少了必要的参数,可能就会导致node_modules文件夹不存在。 第二个原因可能是你在维护或迁移项目时,不小心删除了node_modules文件夹。这个文件夹包含了所有你的依赖项,如果不小心删除,就会导致项目无法运行。如果你使用的是版本控制软件如Git等,可以尝试回滚到之前的版本,或者使用npm install命令重新安装项目所需的依赖项。 第三个原因可能是你的文件路径或文件名出现了问题。在某些情况下,你可能会有一些诸如重命名文件、移动文件或更文件/文件夹路径等操作,这些操作可能会导致文件路径或文件名出现问题,进而导致node_modules目录无法找到。如果出现这种问题,你可以通过检查文件路径和文件名是否正确,手动创建或重新安装依赖项来解决这个问题。 无论出现何种问题,确保在运行Vue项目之前,node_modules文件夹一定存在,并包含所有的依赖项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值