我有一个通过 Gitlab 部署的应用程序。为了将其部署到生产服务器,我使用了deploy_production. 基本上通过 ssh 进入,删除 node_modules 进行拉取、安装和构建:
image: node:latest\n\nbefore_script:\n - apt-get update -qq\n - apt-get install -qq git\n - \'which ssh-agent || ( apt-get install -qq openssh-client )\'\n - eval $(ssh-agent -s)\n - ssh-add <(echo "$K8S_SECRET_SSH_PRIVATE_KEY" | base64 -d)\n - mkdir -p ~/.ssh\n - \'[[ -f /.dockerenv ]] && echo -e "Host *\\n\\tStrictHostKeyChecking no\\n\\n" > ~/.ssh/config\'\n\nstages:\n - install\n - build\n - deploy_production\n\ncache:\n paths:\n - node_modules/\n\ninstall:\n stage: install\n script:\n - npm install\n artifacts:\n paths:\n - node_modules/\n\n\nbuild:\n stage: …Run Code Online (Sandbox Code Playgroud) 我试图找出如何定义特定命令.我检查了所有位置,$PATH找不到任何名为my command的文件,所以它似乎是别的东西.
以下是使用nvm的示例,它不是可执行文件:
me@MacBook:~$ which cat
/bin/cat
me@MacBook:~$ which nvm
me@MacBook:~$ nvm --version
0.33.8
Run Code Online (Sandbox Code Playgroud)
which nvm 什么都不回报.
在基于unix的系统中,这样的命令的"which"相当于什么?
尝试启动需要模块“userid”的 server.js 时出现以下错误。
module.js:460
return process.dlopen(module, path._makeLong(filename));
^
Error: Module version mismatch. Expected 46, got 47.
at Error (native)
at Object.Module._extensions..node (module.js:460:18)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (/root/backend/node_modules/userid/lib/userid.js:2:15)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?