关于运行 npm run serve/dev 运行不起来,node_modules Git忽略不了等(问题)

前言:需要根据项目的情况、场景自行辨别对应的情况

npm run serve/dev 运行问题

  • 情况一
    直接 clone 的项目忘了 npm install,这种情况看一下当前项目是否存在 node_modules,没有的话 npm i 然后运行就好了
  • 情况二
    error when starting dev server:
    TypeError: crypto$2.getRandomValues is not a function
    该情况是 node 版本不对应,新版的 vite 项目需要更高的 node 版本,需要 Node.js 18+ 版本运行

可以安装一个 nvm 做 node 版本控制,对于多个项目中的 node 切换非常方便

  • 情况三
    项目中已经存在 node_modules 还是无法运行,需要重新 npm i,这种情况大概率是丢失了 .bin 文件导致的运行不了

  • 特殊情况
    在内网环境下,项目初期将 node_modules 与代码一起提交到 Git 仓库。由于同事的代码迭代,导致 Git 仓库中 .bin 文件丢失,使得最新版本的代码无法运行。本地 node_modules 未变动,导致 Git 仓库与本地代码一致,但依赖包不一致。项目刚接手时发现代码无法运行,部分功能在几个月前正常,最近突然失效。(气不活了😂,这个项目刚转到我手上结果代码跑不起来,问题排查搞了一下午)

解决方案

  1. 克隆项目到两个目录
    • 主文件目录:用于日常开发和代码提交
    • 切换文件目录:用于切换分支,寻找包含完整 .bin 文件的 node_modules
  2. 查找可用的 node_modules
    • 在切换文件目录中,从最新提交开始,逐步回退到历史提交
    • 检查每个提交的 node_modules 是否包含 .bin 文件
    • 找到第一个包含完整 .bin 文件的提交
  3. 替换 node_modules
    • 删除主文件目录中的 node_modules
    • 将切换文件目录中找到的完整 node_modules 复制到 主文件目录(注意:必须删除原有 node_modules,直接替换可能无效)
  4. 验证项目功能
    • 运行项目,检查功能是否恢复正常
    • 如果功能正常,提交代码到 Git 仓库

node_modules Git 忽略不了

由于在远端仓库已经推过了 node_modules,导致即使在 .gitignore 文件中配置了也无法忽略
解决方案

  • 忽略 node_modules 文件,git rm -r --cached node_modules 该指令并不是删除了 node_modules,只是做了忽略处理
  • 还有一种情况是该项目的包已经锁定,不需要忽略 node_modules,但是每次运行项目的时候会产生不一样缓存文件 node_modules/.cache,这样会造成每次提交代码会提交一堆缓存文件,可以单独忽略 git rm -r --cached node_modules/.cache
0 info it worked if it ends with ok 1 verbose cli [ 1 verbose cli 'E:\\nodeNvm\\nodejs\\node.exe', 1 verbose cli 'E:\\nodeNvm\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'run', 1 verbose cli 'dev' 1 verbose cli ] 2 info using npm@6.14.13 3 info using node@v14.17.3 4 verbose run-script [ 'predev', 'dev', 'postdev' ] 5 info lifecycle ruoyi@3.8.5~predev: ruoyi@3.8.5 6 info lifecycle ruoyi@3.8.5~dev: ruoyi@3.8.5 7 verbose lifecycle ruoyi@3.8.5~dev: unsafe-perm in lifecycle true 8 verbose lifecycle ruoyi@3.8.5~dev: PATH: E:\nodeNvm\nvm\v14.17.3\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;E:\work\communalization_manage_sxyd\node_modules\.bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\System32\HWAudioDriver;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;E:\maven\apache-maven-3.9.6\bin;E:\Java\jdk1.8.0_73\bin;E:\MySQL\MySQL Server 8.0\bin;E:\Redis;E:\VScode\Microsoft VS Code\bin;E:\Xshell\;E:\Java\jdk1.8.0_73\jre\bin;E:\GIT\Git\cmd;E:\Tencent\微信web开发者工具\dll;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;E:\Xftp\;E:\nodeNvm\nvm;E:\nodeNvm\nodejs;E:\nodeNvm\nvm\node_global;C:\Users\22782\AppData\Local\Microsoft\WindowsApps;E:\nodeNvm\nvm;E:\nodeNvm\nodejs; 9 verbose lifecycle ruoyi@3.8.5~dev: CWD: E:\work\communalization_manage_sxyd 10 silly lifecycle ruoyi@3.8.5~dev: Args: [ 10 silly lifecycle '/d /s /c', 10 silly lifecycle 'set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve' 10 silly lifecycle ] 11 silly lifecycle ruoyi@3.8.5~dev: Returned: code: 9 signal: null 12 info lifecycle ruoyi@3.8.5~dev: Failed to exec dev script 13 verbose stack Error: ruoyi@3.8.5 dev: `set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve` 13 verbose stack Exit status 9 13 verbose stack at EventEmitter.<anonymous> (E:\nodeNvm\nvm\v14.17.3\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16) 13 verbose stack at EventEmitter.emit (events.js:375:28) 13 verbose stack at ChildProcess.<anonymous> (E:\nodeNvm\nvm\v14.17.3\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14) 13 verbose stack at ChildProcess.emit (events.js:375:28) 13 verbose stack at maybeClose (internal/child_process.js:1055:16) 13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5) 14 verbose pkgid ruoyi@3.8.5 15 verbose cwd E:\work\communalization_manage_sxyd 16 verbose Windows_NT 10.0.26100 17 verbose argv "E:\\nodeNvm\\nodejs\\node.exe" "E:\\nodeNvm\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev" 18 verbose node v14.17.3 19 verbose npm v6.14.13 20 error code ELIFECYCLE 21 error errno 9 22 error ruoyi@3.8.5 dev: `set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve` 22 error Exit status 9 23 error Failed at the ruoyi@3.8.5 dev script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 9, true ] 解决方法
最新发布
03-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值