在为Node 12 LTS
配置的Linux
Azure App / Web Service
上,将代码资产上传到/home/site/wwwroot/
(其中包含package.json
文件)后,将npm install
作为root
运行。我得到如下所示的异常。
同样的异常发生在两个不同的Azure App / Web Services
上,一个用于UI
,另一个用于API
(所以两个不同的代码集)。但是错误模式是一样的:
它不能改变/home/site/wwwroot/node_modules/[...]/build-optimizer/node_modules/.bin/
下目录的所有权,但这只是因为.../.bin/
子目录本身从未被创建。
同样,我在两种情况下都将npm install
运行为root
。
任何想法?请见下文,谢谢。
24380 warn optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/fsevents):
24381 warn notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
24382 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS: darwin
24382 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch: any
24382 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS: linux
24382 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
24383 warn optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.1 (node_modules/karma/node_modules/fsevents):
24384 warn notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
24385 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS: darwin
24385 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch: any
24385 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS: linux
24385 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
24386 verbose stack Error: EPERM: operation not permitted, lchown '/home/site/wwwroot/node_modules/@angular-devkit/build-optimizer/node_modules/.bin/tsserver'
24387 verbose cwd /home/site/wwwroot
24388 verbose Linux 4.15.0-112-generic
24389 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
24390 verbose node v12.19.0
24391 verbose npm v6.14.8
24392 error code EPERM
24393 error syscall lchown
24394 error path /home/site/wwwroot/node_modules/@angular-devkit/build-optimizer/node_modules/.bin/tsserver
24395 error errno -1
24396 error Error: EPERM: operation not permitted, lchown '/home/site/wwwroot/node_modules/@angular-devkit/build-optimizer/node_modules/.bin/tsserver'
24396 error [OperationalError: EPERM: operation not permitted, lchown '/home/site/wwwroot/node_modules/@angular-devkit/build-optimizer/node_modules/.bin/tsserver'] {
24396 error cause: [Error: EPERM: operation not permitted, lchown '/home/site/wwwroot/node_modules/@angular-devkit/build-optimizer/node_modules/.bin/tsserver'] {
24396 error errno: -1,
24396 error code: 'EPERM',
24396 error syscall: 'lchown',
24396 error path: '/home/site/wwwroot/node_modules/@angular-devkit/build-optimizer/node_modules/.bin/tsserver'
24396 error },
24396 error errno: -1,
24396 error code: 'EPERM',
24396 error syscall: 'lchown',
24396 error path: '/home/site/wwwroot/node_modules/@angular-devkit/build-optimizer/node_modules/.bin/tsserver',
24396 error parent: '@angular-devkit/build-optimizer'
24396 error }
24397 error The operation was rejected by your operating system.
24397 error It is likely you do not have the permissions to access this file as the current user
24397 error
24397 error If you believe this might be a permissions issue, please double-check the
24397 error permissions of the file and its containing directories, or try running
24397 error the command again as root/Administrator.
24398 verbose exit [ -1, true ]
有完全相同的问题。感谢semkeijsper的评论,我的解决方案是:in package.json:
npm install
被修改为:
"npm cache clean --force && npm install"