【发布时间】:2020-11-07 18:49:09
【问题描述】:
我开发了一个工具,它生成一个 scss 文件,运行 npm run prod 并将生成的 app.css 上传到服务器。
在本地这没问题。我只是运行shell_exec('npm run production'),它成功了。
现在,今天,我将该工具推广到由 Laravel Forge 管理的 DigitalOcean-Server。现在,NPM-command 的执行不再起作用了。相反,我在运行 npm run production 时看到此错误:
ERR! file sh
npm ERR! path sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm
当我现在将脚本更改为 npm -v 时,我看到了:
6.9.0
有人知道,如何让 NPM 在这里运行?
(production 是此命令的别名:cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js)
更新:
现在,我尝试使用纱线。运行yarn install 工作正常。结果在意料之中。但是运行 yarn run development 会出现以下错误:
2020-11-07 20:03:55 STDOUT: yarn run v1.17.3
2020-11-07 20:03:55 STDOUT: $ npm run development
2020-11-07 20:03:55 STDERR: /bin/sh: 1:
2020-11-07 20:03:55 STDERR: npm: not found
2020-11-07 20:03:55 STDERR: error Command failed with exit code 127.
2020-11-07 20:03:55 STDOUT: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
如果我通过 ssh 在完全相同的目录中手动运行 yarn run development,一切正常。
更新 2: 我想,也许问题是,Laravel 是由另一个用户在 SSH 中执行的。但两者都是用户forge。
【问题讨论】:
-
您是否尝试删除您的 node_modules/ 和 yarn.lock/package-lock.json 文件并重新运行 npm install?
标签: node.js laravel npm digital-ocean laravel-forge