当前位置: 首页 > 知识库问答 >
问题:

使用ansible构建和重新加载Nodejs应用程序不起作用

公冶嘉
2023-03-14

两个命令“NPM run Build”和“PM2 reload All”使用ansible引发错误,但在目标服务器上这些命令运行良好

目标服务器上的pm2位置:即pm2 pm2://home/ubuntu/.nvm/versions/node/v12.10.0/bin/pm2

{“changed”:false,“cmd”:“pm2全部重新加载”,“msg”:“[Errno 2]没有这样的文件或目录:b'pm2':b'pm2'”,“rc”:2}

Ansible playbook片段:

- name: Run build
  command: npm run build
  become: yes
  become_user: ubuntu
 
- name: Reload PM2 processes
  command: pm2 reload all
  become: yes
  become_user: ubuntu
 
  
- name: List PM2 processes again
  command: pm2 list
  become: yes
  become_user: ubuntu
 

也试过:

  • 名称:Run build命令:npm Run build bare:yes bece_user:ubuntu environment:path://home/ubuntu/.nvm/versions/node/v12.10.0/bin://usr/local/bin://usr/bin://bin://usr/local/sbin://usr/sbin://sbin://sbin

获取错误:“changed”:true,“cmd”:[“npm”,“run”,“build”],“delta”:“0:00:00.173783”,“end”:“2021-09-18 17:52:20.166641”,“msg”:“非零返回码”,“rc”:254,“start”:“2021-09-18 17:52:19.992858”,“stderr”:“npm err!代码enoent\nnpm错误!系统调用打开\nnpm错误!path/home/ubuntu/package.json\nnpm错误!错误号-2\nnpm错误!enoent enoent:没有这样的文件或目录,打开'/home/ubuntu/package.json'\nnpm错误!这与npm找不到文件有关。\nnpm错误!enoent\n\nnpm错误!此运行的完整日志可以在:\nnpm err!/home/ubuntu/.npm/_logs/2021-09-18t17_52_20_159z-debug.log“,”stderr_lines“:[”npm err!code enoent“,”npm err!syscall open“,”npm err!path/home/ubuntu/package.json“,”npm err!path/home/ubuntu/package.json“,”npm err!erno-2“,”npm err!enoent:没有这样的文件或目录,打开'/home/ubuntu/package.json'

共有1个答案

窦哲彦
2023-03-14

试试这个:

- name: Run build
  args:
    chdir: /path/to/your/nodejs-app
    creates: /path/to/your/nodejs-app/node_modules
  command: npm run build
  become: yes
  become_user: ubuntu
  environment:
    PATH: /home/ubuntu/.nvm/versions/node/v12.10.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

- name: Reload PM2 processes
  command: pm2 reload all
  become: yes
  become_user: ubuntu
  environment:
    PATH: /home/ubuntu/.nvm/versions/node/v12.10.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
 类似资料:
  • 我在手机上构建应用程序时遇到了以下错误:

  • 我试图在Docker中使用Create React App和Node js设置一个开发环境。但当我更改代码时,它不会重新加载更改 通常只使用卷就足够了,但我还添加了:CHOKIDAR\u USEPOLLING=true in ENV,正如create react app官方文档所说,我将代码移到了WSL,因为我在Windows 10上,但仍然是一样的。我用create react app创建了另一

  • 问题内容: 我有一个加载DLL来执行处理的特定部分的应用程序 Process.dll 使用反射 在运行时动态加载 ,并且未在应用程序中引用。 处理完成后,需要在服务器上重新编译DLL,然后稍后再次加载。 为此,我需要释放它,否则会收到以下消息:“无法将文件“ Process.dll”复制到“ Process.dll”。该进程无法访问文件“ Process.dll”,因为被另一个进程使用。” 因此,

  • 有没有人可以帮我开轮班路线? 我已经设置了一个带有重新加密TLS终止的路由。对服务endpoint(https://openshift-pmi-dev-reencrypt-default.apps.vapidly.os.fyre.ibm.com)的调用会导致: 对 URL 发出的请求似乎没有到达 pod,它返回 503 应用程序不可用错误。liberty 应用程序在端口 8543 上运行良好,应用

  • 我有一个servlet,它使用了通过JNI共享的librared,我在tomcat9下遇到了以前在tomcat7上没有的问题。 共享库本身位于java(LD LIBRARY)路径上,因此由tomcat OK拾取。但是,我在放置相应jar文件的位置上遇到了问题。 如果我将jar文件放在webapps/WEB-INF/lib中并重新启动tomcat,一切正常。但是,如果我使用Web管理器界面重新加载应

  • 这个插件是关于杀死黑客的,但由于某些原因,它不会通过命令重新加载配置,我尝试了所有方法,但什么都没有,当我更改配置时,我必须重新加载服务器,而不是通过命令。 在其他类上,配置设置为true/false,当我转到config时,配置不会保存