sh: 1: cross-env: laravel mix 权限被拒绝

sha*_*een 34 node.js npm laravel

我正在尝试运行,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
Run Code Online (Sandbox Code Playgroud)

我已经在互联网上搜索了一个星期,没有任何帮助!

我什至试图从 package.json 脚本中删除 'cross-env',但是 webpack: permission denied 发生了,表明权限错误不是由 cross-env 本身造成的。

这是错误日志:

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 ]
Run Code Online (Sandbox Code Playgroud)

我正在使用 Laravel 5.7mix。

节点版本:v11.10.0 npm 版本:6.7.0

有什么帮助吗?

zar*_*pio 101

我在 ubuntu 18 上。

以下命令帮助了我:-)

npm rebuild
Run Code Online (Sandbox Code Playgroud)

记录如下,在官方网站上。

此命令npm build在匹配的文件夹上运行该命令。这在您安装新版本的 node 时很有用,并且必须使用新的二进制文件重新编译所有 C++ 插件。使用--ignore-scripts和安装时也很有用--no-bin-links,可以明确选择要构建和/或链接 bin 的包。

如果提供了一个或多个包名称(以及可选的版本范围),则只会重建名称和版本与其中一个说明符匹配的包。

  • 这救了我的命。再次。 (4认同)
  • 我也是,谢谢 (3认同)
  • 再次为我))非常感谢你好人! (3认同)

Tin*_*she 22

这是因为全局安装包的权限问题,npm 被拒绝访问。

要解决这个尝试

1.

npm rebuild

npm run watch
Run Code Online (Sandbox Code Playgroud)

或 2

rm -Rf node_modules

npm install

npm run watch
Run Code Online (Sandbox Code Playgroud)

希望它有效。

  • 方法二有效 (5认同)

Emi*_*ter 22

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

$ npm run watch

> watch
> mix watch

sh: 1: mix: Permission denied
Run Code Online (Sandbox Code Playgroud)

要在 Ubuntu Linux 上解决这个问题,这对我有用:

chmod -R u+x node_modules
Run Code Online (Sandbox Code Playgroud)

+为您提供对目录及其内部所有内容的递归用户u执行x权限。-Rnode_modules

请小心,考虑安全性,不要使用,ao标志g来代替u标志,这将赋予all,othersgroup执行权。g如果您信任组中的所有用户,该标志可能没问题。

正如 ruuter 在评论中所述,如果您找到需要执行权限的确切文件并仅为这些文件授予执行权限,那么对于安全性来说会更好。


小智 13

正如 @savedbeau 所建议的,运行以下命令可以修复此问题:


npm rebuild
Run Code Online (Sandbox Code Playgroud)

其次是

npm run watch
Run Code Online (Sandbox Code Playgroud)


hab*_*bib 7

以下事情对我有用

chmod -R a+x node_modules
Run Code Online (Sandbox Code Playgroud)

来源


小智 6

尝试这个。

$ rm -rf node_modules

$ npm cache clear --force

$ npm install npm@latest -g

$ chown -R $USER ~/.npm

$ npm install 
Run Code Online (Sandbox Code Playgroud)


sha*_*een 5

好吧,我找出问题所在了,保存项目的存储是自动挂载的,并且没有执行权限。

轻松地在 /etc/fstab 文件中我添加了exec挂载选项,如下所示:

auto,user,exec,utf8,uid=1000,gid=1000,rw 0 0
Run Code Online (Sandbox Code Playgroud)