NodeJS sh:1:跨环境:拒绝对laravel mix的权限

k5ifujac  于 2023-01-12  发布在  Node.js
关注(0)|答案(7)|浏览(211)

我尝试运行npm run dev,但出现以下错误:

sh: 1: cross-env: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 126
npm ERR! 
npm ERR! Failed at the @ development script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/shanmaseen/.npm/_logs/2019-02-22T16_32_08_191Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! @ dev: `npm run development`
npm ERR! Exit status 126
npm ERR! 
npm ERR! Failed at the @ dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/shanmaseen/.npm/_logs/2019-02-22T16_32_08_241Z-debug.log

我已经在网上搜索了一个星期了,一点帮助都没有!
我甚至尝试从package.json脚本中删除'cross-env',但随后webpack:发生权限被拒绝的情况,表明权限错误不是由跨环境本身引起的。
这是错误日志:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'dev' ]
2 info using npm@6.7.0
3 info using node@v11.10.0
4 verbose run-script [ 'predev', 'dev', 'postdev' ]
5 info lifecycle @~predev: @
6 info lifecycle @~dev: @
7 verbose lifecycle @~dev: unsafe-perm in lifecycle true
8 verbose lifecycle @~dev: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/media/e/www/mwar/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
9 verbose lifecycle @~dev: CWD: /media/e/www/mwar
10 silly lifecycle @~dev: Args: [ '-c', 'npm run development' ]
11 silly lifecycle @~dev: Returned: code: 126  signal: null
12 info lifecycle @~dev: Failed to exec dev script
13 verbose stack Error: @ dev: `npm run development`
13 verbose stack Exit status 126
13 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
13 verbose stack     at EventEmitter.emit (events.js:197:13)
13 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:197:13)
13 verbose stack     at maybeClose (internal/child_process.js:984:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
14 verbose pkgid @
15 verbose cwd /media/e/www/mwar
16 verbose Linux 4.18.0-15-generic
17 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "dev"
18 verbose node v11.10.0
19 verbose npm  v6.7.0
20 error code ELIFECYCLE
21 error errno 126
22 error @ dev: `npm run development`
22 error Exit status 126
23 error Failed at the @ dev script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 126, true ]

我用的是拉瑞威5.7mix。
节点版本:v11.10.0 npm版本:6.7.0
有什么需要帮忙的吗?

wko9yo5t

wko9yo5t1#

我用的是ubuntu 18.
以下命令帮助了我:-)

npm rebuild

在官方网站上记录如下。

此命令在匹配的文件夹上运行npm build命令。当您安装新版本的node并且必须使用新的二进制文件重新编译所有C++插件时,此命令非常有用。当使用--ignore-scripts--no-bin-links安装时,显式选择要构建的包和/或链接二进制文件也非常有用。
如果提供了一个或多个包名(以及可选的版本范围),那么只有名称和版本与其中一个说明符匹配的包才会被重建。

cbwuti44

cbwuti442#

这是因为包的全局安装存在权限问题,npm被拒绝访问。
要解决此问题,请尝试
1.

npm rebuild

npm run watch

或2

rm -Rf node_modules

npm install

npm run watch

希望能成功。

cwxwcias

cwxwcias3#

下面的事情对我很有效

chmod -R a+x node_modules

source

tv6aics1

tv6aics14#

如果文件和/或目录权限被更改为更严格的权限,Ubuntu Linux上可能会发生如下权限错误:

$ npm run watch

> watch
> mix watch

sh: 1: mix: Permission denied

在Ubuntu Linux上解决这个问题,这个方法对我很有效:

chmod -R u+x node_modules

它为+用户u提供-R递归node_modules目录及其内部所有内容的x执行权限。
请注意,考虑安全性,不要使用aog标志来代替u标志,u标志将给予allothersgroup执行权限。如果您信任组中的所有用户,g标志可能是可以的。
正如ruuter在评论中所说的,如果你能找到需要执行权限的文件,并且只对这些文件授予执行权限,那么安全性会更好。

niwlg2el

niwlg2el5#

正如@savedbeau建议的那样,运行以下命令可以解决此问题:

npm rebuild

接着是

npm run watch
gwo2fgha

gwo2fgha6#

"试试这个"

$ rm -rf node_modules

$ npm cache clear --force

$ npm install npm@latest -g

$ chown -R $USER ~/.npm

$ npm install
cdmah0mi

cdmah0mi7#

好了,我找出了问题所在,项目保存的存储是自动挂载的,它没有执行权限。
很容易在/etc/fstab文件中,我在mount选项中添加了exec,如下所示:

auto,user,exec,utf8,uid=1000,gid=1000,rw 0 0

相关问题