>

다음과 같은 일이 일어나고있는 비교적 비교적 신비한 파일이 필요합니다

이것은 /Users/marcos/Desktop/Taper/lib/utils.js 를 가리키는 잘 작동합니다.

myPath = "/Users/marcos/Desktop/Taper/lib/./utils";
require(myPath);

이것은 아니지만 정확히 같은 파일을 가리켜 야합니다 :

require.paths.unshift("/Users/marcos/Desktop/Taper/lib")
require("./utils"); //Doesn't work with './'
require("utils"); //Works Fine

아직 내가 왜 ./ 를 사용할 수 없는지 아는 사람  이 경우 경로를로드하기 위해

require("path").resolve("/Users/marcos/Desktop/Taper/lib", "./utils")

결과 :

"/Users/marcos/Desktop/Taper/lib/utils"

어쨌든?

미리 감사합니다


  • 답변 # 1

    업데이트 :

    문서에서 :

    와이즈 비즈 와이즈 비즈  파일의 절대 경로입니다. 에 대한   예 :

    A module prefixed with  에 파일을로드합니다   와이즈 비즈 .

         

    '/' 접두사가 붙은 모듈   require('/home/marco/foo.js') 를 호출하는 파일과 관련이 있습니다. .   즉, /home/marco/foo.js   './' 와 동일한 디렉토리에 있어야합니다.  ...에 대한   와이즈 비즈  그것을 찾기 위해.

         

    파일을 나타내는 선행 '/'또는 './'없이 모듈은 다음 중 하나입니다.   "코어 모듈"또는 require() 에서로드  폴더.

         주어진 경로가 존재하지 않으면 circle.js  와 오류가 발생합니다   그것의 foo.js   require('./circle') 로 설정된 속성 .

    <시간>

    다음은 node_modules 를 나타내는 원래 답변입니다.  (더 이상 지원되지 않음) :

    문서에서 :

    require() 노드   code 접두사가 붙지 않은 경우모듈을 검색 할 경로를 나타내는 문자열 배열입니다. 'MODULE_NOT_FOUND' 또는 require.paths .

    (강조 광산)

  • 답변 # 2

    require.paths 를 사용하여 전달할 수 있습니다.

    예 :

    '/'
    
    

  • 답변 # 3

    rekuire라는 새 노드 모듈을 만들었습니다.

    상대 경로를 사용하지 않고 "필수"할 수 있습니다.

    테스트/리팩토링에있어 시간을 크게 절약 할 수 있습니다.

    와이즈 비즈 './'

  • 이전 특정 안드로이드 앱 버전에 대한 Firebase 데이터 메시지
  • 다음 javascript - 직렬화 된 문자열에서 이스케이프 된 # 기호