패키지에서 node_modules에 대한 경로를 지정합니다.json
애플리케이션에서 node_modules 디렉토리를 bowerrc 파일과 같이 /vendor/node_modules라고 이동할 수 있는 방법이 있습니까?저는 패키지에 명시될 수 있다고 생각했습니다.json 하지만 해결책을 찾을 수 없는 것 같습니다.당신의 도움에 대단히 감사드립니다.
가능합니다. NODE_PATH env 변수를 설정하기만 하면 됩니다.
export NODE_PATH='yourdir'/node_modules
문서에 의하면:
NODE_PATH 환경 변수가 절대 경로의 콜론으로 구분된 목록으로 설정된 경우 다른 곳에서 찾을 수 없는 모듈을 검색합니다. (참고: 윈도우즈의 경우 NODE_PATH는 콜론 대신 세미콜론으로 구분됩니다.)
또한 노드는 다음 위치에서 검색합니다.
1: $HOME/.node_modules
2: $HOME/.node_libraries
3: $PREFIX/lib/node
여기서 $HOME은 사용자의 홈 디렉토리이고 $PREFIX는 노드의 구성된 node_prefix입니다.
이것들은 대부분 역사적인 이유 때문입니다.종속성을 node_modules 폴더에 로컬로 배치하는 것이 좋습니다.그들은 더 빠르고 안정적으로 적재될 것입니다.
간단히 말해서:불가능하며, 지원되지 않을 것으로 보이기 때문입니다(여기 https://github.com/npm/npm/issues/775) 참조).
CLI 또는 ENV-Variables(현재 선택한 답변 참조), .npmrc-Config-Files 또는npm link
- 그들 모두의 공통점:그들은 단지 프로젝트에만 국한된 것이 아니라, 항상 일종의global
해결책.
저는 프로젝트에 참여하는 사람들이 항상 특별한 구성을 만들거나 특별한 지식을 가져야 하기 때문에 이러한 솔루션 중 어느 것도 실제로는 완벽하지 않습니다.npm install
그리고 그것은 동작한다.
그래서: 소포를 넣어야 할 것입니다.json은 node_modules를 설치할 디렉토리와 동일한 디렉토리에 있거나 프로젝트의 루트 dir에 항상 있을 것이라는 사실을 알고 있습니다.
원사는 이 기능을 지원합니다.
# .yarnrc file in project root
--modules-folder /node_modules
하지만 어떤 패키지를 사용하느냐에 따라 경험이 달라질 수 있습니다.저 토끼굴에 들어가고 싶으실지 모르겠네요.
이것이 당신이 생각한 것인지는 모르겠지만, 설치를 할 수 없어서 결국 이 질문을 하게 되었습니다.node_modules
symlinks(VM "공유" 폴더)를 지원하지 않는 파일 시스템에 마운트된 프로젝트 dir 내부에 있습니다.
다음과 같은 해결 방법을 찾았습니다.
- 복사합니다.
package.json
다른 파일 시스템의 임시 폴더에 파일 저장 - 실행.
npm install
거기. - 결과 복사
node_modules
디렉토리를 다시 프로젝트 dir에, 사용cp -r --dereference
symlink를 복사본으로 확장합니다.
이것이 이사할 방법을 찾을 때 이 질문에 이르게 된 다른 사람에게 도움이 되었으면 합니다.node_modules
다른 파일 시스템에 연결할 수 있습니다.
기타옵션
@Charminbear가 링크한 github 문제에서 발견한 다른 해결 방법이 있지만, 이것은 작동하지 않습니다.grunt
지원하지 않기 때문에NODE_PATH
https://github.com/browserify/resolve/issues/136 에 따르면 다음과 같습니다.
당신이 가지고 있다고 가정해 보겠습니다.
/media/sf_shared
심볼 링크를 설치할 수 없습니다. 즉, 실제로 npm 설치가 불가능합니다./media/sf_shared/myproject
일부 모듈은 심볼 링크를 사용하기 때문입니다.
$ mkdir /home/dan/myproject && cd /home/dan/myproject
$ ln -s /media/sf_shared/myproject/package.json
(이 방향으로 symlink를 할 수 있지만 /media/sf_shared의 내부를 만들 수 없습니다.)$ npm install
$ cd /media/sf_shared/myproject
$ NODE_PATH=/home/dan/myproject/node_modules node index.js
만약 내가 도커 안에 있고 내가 지속적으로 그것을 유지하고 싶다면 어떻게 해야 합니까?node_modules
한 권으로?그다음에.node_modules
내 앱 경로 내부는 내게 선택 사항이 아닙니다.
새로운 코드를 컨테이너에 전개할 때 tar를 넣고 임시 폴더에 추출한 후 app 디렉토리에 rsync합니다. 있습니다.--delete
rsync에 대해 설정된 플래그이므로 tar에 없는 모든 것이 앱 폴더에서 제거됩니다.그것은 또한 다음과 적용됩니다.node_modules
폴더를 사용할 수 있는 유일한 솔루션은 다음과 같습니다.
앱 디렉터리에 다음을 포함하는 디렉터리에 대한 심볼릭 링크를 만듭니다.
node_modules
호스트에서 컨테이너에 마운트됩니다.
언급URL : https://stackoverflow.com/questions/26293049/specify-path-to-node-modules-in-package-json
'programing' 카테고리의 다른 글
오라클에서 sql server GO와 동등함 (0) | 2023.10.20 |
---|---|
jquery는 첫번째 요소를 제외한 모든 요소를 제거합니다. (0) | 2023.10.20 |
pandas 데이터프레임 열 유형을 문자열 또는 범주형으로 변환 (0) | 2023.10.20 |
삼성 갤럭시S2에 반응 없는 웹사이트 (0) | 2023.10.20 |
Spark DataFrame을 피벗하는 방법은? (0) | 2023.10.20 |