Development Tip

node_modules 위치 변경

yourdevel 2020. 12. 5. 10:45
반응형

node_modules 위치 변경


node_modules 폴더 위치를 변경하는 방법이 있습니까?

예를 들면 :

- dir1
- dir2
- node_modules

에:

- dir1
- dir2
    - node_modules

다음은 node_modules기본적으로 폴더 를 보는 코드입니다.

Module.prototype.load = function(filename) {
  debug('load ' + JSON.stringify(filename) +
        ' for module ' + JSON.stringify(this.id));

  assert(!this.loaded);
  this.filename = filename;
  this.paths = Module._nodeModulePaths(path.dirname(filename));

  var extension = path.extname(filename) || '.js';
  if (!Module._extensions[extension]) extension = '.js';
  Module._extensions[extension](this, filename);
  this.loaded = true;
};

따라서 다음은 정확한 검색 패턴입니다.

  1. Node.JS 는 주어진 모듈이 코어 모듈인지 확인합니다. (예 : http, fs등)로드 모듈에서 항상 우선 순위를 갖습니다.

  2. 주어진 모듈은 핵심 모듈이 아닌 경우 (예를 들어 http, fs등), Node.js를 후,라는 디렉토리를 검색하기 시작합니다 node_modules.

    현재 디렉토리 ( Node.JS 에서 현재 실행중인 파일에 상대적 ) 에서 시작한 다음 폴더 계층 구조 위로 올라가서 node_modules 폴더의 각 레벨을 확인합니다. 일단 Node.js를가 발견 node_modules폴더를, 그것은 다음 (의 .js) 자바 스크립트 파일 또는 명명 된 하위 디렉토리로 중 지정된 모듈을로드하려고 시도합니다; 명명 된 하위 디렉토리를 찾으면 다양한 방법으로 파일로드를 시도합니다. 예를 들어

  3. : 당신이 요청 "유틸"모듈을로드하고 해당 디렉토리가 없습니다은 .js 다음 파일을 만들 경우
    Node.js를이 에 대한 계층 적 디렉토리를 검색합니다 node_modulesutils다음과 같은 방법으로 :

    ./node_modules/utils.js
    ./node_modules/utils/index.js
    ./node_modules/utils/package.json
    
  4. Node.JS가 여전히 위 단계에서 파일을 찾을 수없는 경우 Node.js는 환경 변수, 즉 NODE_PATH컴퓨터에 설정된 디렉토리 경로를 조사하기 시작 합니다 (Windows에있는 경우 Node.JS 설치 프로그램 파일에 의해 설정 됨). 모든 위의 단계에서 발견되지 않음에 스택 트레이스를 출력 stder
    일예를 : 더 많은 정보를 원하시면 : link is here 심지어 순환 require () 도 아주 잘 설명되어 있습니다.Error:Cannot find module 'yourfile'


실제로 nodevars.bat마지막 줄이 다음과 같은 파일을 편집 할 수도 있습니다 .

if "%CD%\"=="%~dp0" cd /d "%HOMEDRIVE%%HOMEPATH%"

사용자의 홈 디렉토리를 관리하는 대신 자체 디렉토리를 지정할 수 있습니다.

%HOMEDRIVE%%HOMEPATH%

노드 모듈 위치가 자동으로 관리되도록합니다.

참고 URL : https://stackoverflow.com/questions/18974436/change-node-modules-location

반응형