programing

NPM에서 종속성을 설치할 수 없음 - 잠기지 않은 항목의 잠금을 해제하려고 합니다.

sourcejob 2023. 7. 28. 21:57
반응형

NPM에서 종속성을 설치할 수 없음 - 잠기지 않은 항목의 잠금을 해제하려고 합니다.

패키지에서 npm 설치를 실행하려고 했습니다.json 파일, 하지만 저는 많은 문제를 겪고 있습니다.계속 "오류:나의 모든 의존성에 대해 "잠기지 않은 XXX의 잠금을 해제하려고 시도합니다."그 중 하나는 다음과 같습니다.

Error: Attempt to unlock tbd@~0.6.4, which hasn't been locked
        at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1304:11)
        at cb (/usr/local/lib/node_modules/npm/lib/cache.js:646:5)
        at /usr/local/lib/node_modules/npm/lib/cache.js:655:20
        at /usr/local/lib/node_modules/npm/lib/cache.js:1290:7
        at /usr/local/lib/node_modules/npm/node_modules/lockfile/lockfile.js:167:38
        at OpenReq.Req.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:144:5)
        at OpenReq.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:64:22)
        at Object.oncomplete (fs.js:107:15)

sudo로 실행하려고 하면 더 멀리 가서 일부 패키지를 설치하기 시작하는 것처럼 보이지만 대신 몇 가지 새로운 오류가 팝업됩니다.

> chokidar@0.8.1 postinstall /Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/chokidar
> node setup-deps.js

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied

node.js:811
    var cwd = process.cwd();
                      ^
Error: EACCES, permission denied
    at Function.startup.resolveArgv0 (node.js:811:23)
    at startup (node.js:58:13)
    at node.js:902:3
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q'
npm ERR! error rolling back  karma@0.10.9 { [Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q']
npm ERR! error rolling back   errno: 53,
npm ERR! error rolling back   code: 'ENOTEMPTY',
npm ERR! error rolling back   path: '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q' }
npm ERR! Error: ENOENT, chown '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/socket.io/lib/socket.io.js'

최근에 노드 및 npm 설치를 업데이트했습니다.그래서 아마도 그것은 그것과 관련이 있을 것입니다.또한, 제가 개발한 대부분은 사무실에 있었고 오늘은 VPN을 통해 작업하고 있기 때문에, 아마도 그것도 관련이 있을 것입니다.

아이디어 있어요?

다음 사이트의 사진 전문가: https://github.com/npm/npm/issues/4815

터미널 창에서 이 명령을 실행합니다(참고 - $USER 부분을 바꾸지 않음...).사용자를 가져오기 위한 Linux 명령입니다!:

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules

...그리고...Mac에서 (나처럼) 이러한 명령을 실행한 후에도 오류가 표시되는 경우 마지막 명령을 실행하면 문제가 없습니다.테스트를 수행하기 전에 테스트를 해보는 것이 좋습니다.꼭 필요한 경우가 아니면 전체 /usr/local 디렉토리에 대한 권한을 변경하는 것을 좋아하지 않습니다!)

sudo chown -R $USER /usr/local

저는 오늘 오후에 동료와 함께 일을 했고 무엇이 문제인지 알아냈습니다.홈 디렉토리의 ".npm" 폴더는 나 대신 루트 사용자가 소유했습니다.무슨 일로 그런 일이 생겼는지 잘 모르겠어요.노드나 npm을 루트 관리자로 설치한 것 같습니다.어쨌든 나는 그냥 달렸습니다.sudo chown -R [username] .npm그리고 마침내 도망칠 수 있었습니다.npm install내 프로젝트의 명령을 다시!

저의 경우 HOME 디렉토리가 없는 사용자에게 npm을 호출하는 문제가 발생했기 때문에 예를 들어 다음 명령은 실패합니다.

sudo -u someUser npm install

입니다. HOME 디렉토리에는 "HOME"이 있습니다.someUser쓰기 액세스 권한 있음:

sudo -u someUser HOME=/some/directory npm install

동일한 문제가 발생했으며 승인된 답변에 따라 권한을 변경하여 해결했습니다.

sudo chown -R $USER ~/.npm

두 리소스의 .sudo chown -R $USER /usr/local/lib/node_modules좋은 생각이 아닙니다.

usr의 "은 "usr"입니다./usr/localUnix 시스템 리소스의 약자입니다.

이 모든 것이 제게는 효과가 없었습니다.저는 다음을 수행함으로써 말 그대로 근본적으로 운영되어야 했습니다.

sudo su -
sudo npm install forever -g

그런 다음 리눅스 Ubuntu 14.04에 패키지를 설치합니다.

다음 명령은 권한 문제를 해결해야 합니다.

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

여기에서 공식적으로 권장되는 다른 솔루션에 대해 알아볼 수 있습니다.

https://docs.npmjs.com/getting-started/fixing-npm-permissions

내 솔루션:

sudo chown -R $USER /usr/local/lib/node_modules/NAMEOFMODULE

내 경우에는:

sudo chown -R $USER /usr/local/lib/node_modules/appium/

하지만 저도 같은 문제를 겪고 있었어요, 마침내.

npm cache clean

효과가 있었습니다!

저도 같은 문제가 있었고 몇 시간 동안 npm 관련 파일 및 디렉터리의 권한/소유권을 수정하려고 했지만 운이 없었습니다.

갑자기 나는 내가 가지고 있다는 것을 발견했습니다.~/.npmrc로 철하다cache존재하지 않는 디렉터리를 가리키는 항목입니다. 제됨을 제거했습니다.cache기본 캐시 위치를 사용할 속성을 지정합니다.

부인

Windows 사용자입니다.하지만 저희 팀과 저는 npm 설치 오류와 관련하여 여러 가지 문제에 부딪혔습니다.

문제

다음은 배운 교훈과 항상 우리를 구해준 가능한 급진적인 해결책의 목록입니다.

  1. node_modules, npm 로컬 설치 디렉토리는 255자를 초과하는 경로를 처리할 수 없는 등 OS의 단점으로 인해 수정으로부터 보호됩니다.
  2. 명령줄 도구를 사용하여 폴더를 지운 경우에도 폴더가 탐색기에 있는 것처럼 나타나 액세스를 시도할 때 여러 가지 권한 오류가 발생할 수 있습니다.
  3. 바이러스 백신 및/또는 로컬 정책 관리자에 따라 node_modules 폴더를 생성할 수 있으며 나중에 폴더에 대한 액세스 또는 사용 권한을 취소하여 여러 설치 오류가 발생할 수 있습니다.
  4. npm 로그를 사용하여 다음과 관련하여 발생할 수 있는 문제에 대한 추가 정보를 얻을 수 있습니다.

    npm install --loglevel verbose

래디컬

전체적으로 Rimraf 설치

 npm install rimraf -g

node_modules에서 rimraf 실행:

rimraf yourDir/node_modules

그런 다음 실행해 보십시오.

npm install

경고!

또는 그 부족함.명령 뒤에 오는 것에 대해 극도로 주의하십시오.rimraf경고도, 프롬프트도, 아무것도 없습니다.그것은 마치 지구가 존재하지 않는 것처럼 지구를 깨끗하게 하는 단계에서 디렉토리를 지웁니다.당신의 책임 하에 그것을 시도하세요.

내 대리인이었으니까요package-lock.json을 삭제해야 합니다. 이것은 Mac/unix 기반 시스템에서 작동했습니다.

npm config rm proxy
npm config rm https-proxy
npm config delete proxy
npm config delete https-proxy
npm config --global rm proxy
npm config --global rm https-proxy
npm config set registry "http://registry.npmjs.org"
npm config set strict-ssl false

npm install 

run: scutil --proxy

당신은 사전 목록을 얻어야 합니다...

그런 다음 해당 목록에서 다음 값을 가져옵니다.

HTTPProxy : 127.0.0.1 HTTPPort : 8118

그런 다음 이 명령에 포함합니다.

npm config set proxy http://127.0.0.1:8119

다음을 포함합니다.

npm config set https-proxy https://123.0.0.1:8118 

참조: https://www.sneppets.com/angular/how-to-make-npm-install-command-to-work-behind-proxy/

언급URL : https://stackoverflow.com/questions/22152162/npm-cannot-install-dependencies-attempt-to-unlock-something-which-hasnt-been

반응형