../../../../../../ .. 피하기
응용 프로그램의 모든 것이 공용 npm에 올바르게 속하는 것은 아니며 개인 npm 또는 git repo 설정의 오버 헤드는 여전히 많습니다. ../../../../../../../
상대 경로 문제 를 피하기위한 몇 가지 방법이
있습니다.
node_modules
사람들은 때때로 npm에서 타사 모듈을 체크인하지 않고 내부 모듈을 체크인하는 방법이 명확하지 않기 때문에 애플리케이션 특정 모듈을 node_modules에 넣는 것에 반대합니다.
대답은 매우 간단합니다! .gitignore
무시 하는 파일 이있는 경우 node_modules
:
node_modules
!
내부 애플리케이션 모듈 각각에 대해 예외를 추가 할 수 있습니다 .
node_modules/*
!node_modules/foo
!node_modules/bar
당신은 할 수 있습니다 무시 안함 하위 디렉토리, 부모가 이미 무시할 경우. 그래서 그 대신 무시 node_modules
, 당신은 모든 디렉토리 무시해야 내부 node_modules
와
node_modules/*
트릭을, 그리고 당신은 당신의 예외를 추가 할 수 있습니다.
이제 어디에서나 응용 프로그램에서 당신은 수있을 것 require('foo')
또는 require('bar')
매우 크고 깨지기 쉬운 상대 경로를하지 않고.
많은 모듈이 있고 npm에 의해 설치된 타사 모듈과 더 별도로 유지하려면 다음 node_modules
과 같은 디렉토리에 모두 넣을 수 있습니다 node_modules/app
.
node_modules/app/foo
node_modules/app/bar
지금 당신은 수있을 것 require('app/foo')
또는 require('app/bar')
응용 프로그램의 어디에서나.
에서 다음 .gitignore
에 대한 예외를 추가하십시오 node_modules/app
.
node_modules/*
!node_modules/app
애플리케이션에 package.json에 변환이 구성된 경우 변환은 모듈 경계에 적용되지 않으므로 컴포넌트 node_modules/foo
또는 node_modules/app/foo
컴포넌트 디렉토리 에 고유 한 변환 필드를 사용하여 별도의 package.json을 작성해야 합니다. 이렇게하면 응용 프로그램의 구성 변경에 대해 모듈이 더욱 강력 해지며 응용 프로그램 외부에서 패키지를 독립적으로 재사용하기가 더 쉬워집니다.
심볼릭 링크
심볼릭 링크를 만들 수 있고 창을 지원할 필요가없는 응용 프로그램에서 작업하는 경우 유용한 또 다른 방법은 a lib/
또는 app/
폴더 를에 심볼릭 링크하는 것 node_modules
입니다. 프로젝트 루트에서 다음을 수행하십시오.
ln -s ../lib node_modules/app
이제 프로젝트에서 어디에서 당신의 파일을 필요로 할 수 있습니다 lib/
수행하여 require('app/foo.js')
얻을 lib/foo.js
.
맞춤 경로
$NODE_PATH
환경 변수 사용에 대해 이야기 하거나 opts.paths
node 및 browserify에 대한 디렉토리를 추가하여 모듈을 찾기 위해 어떤 장소를 이야기하는 것을 볼 수 있습니다 .
대부분의 다른 플랫폼과 달리, 쉘 디렉토리 형식의 경로 디렉토리를 $NODE_PATH
사용하는 것은 node_modules
디렉토리를 효과적으로 사용하는 것보다 노드에서 유리하지 않습니다 .
응용 프로그램이 런타임 환경 구성에 더 밀접하게 연결되어 있기 때문에 움직이는 부분이 많고 환경이 올바르게 설정된 경우에만 응용 프로그램이 작동하기 때문입니다.
노드와 브라우저는 모두 지원하지만 사용을 권장하지 않습니다
$NODE_PATH
.