2017-09-18 1 views
0

나는 다음과 같은 프로젝트 구조가 : 나는 울부 짖는 소리를 실행하면중첩 모듈 내에서 모듈을 요구하는 방법은 무엇입니까? 자바 스크립트

try{ 
var x = require("casper").selectedPath; 
}catch(error){ 
console.log(error);//cannot find module casper 
} 

:

여기
var casper = require("casper").create(); 
var utils = require("../utils/utils"); 

이 utils.js 파일입니다

여기
WEBCONTENT /run.js 
      utils /utils.js 

이 run.js 파일을 명령 :

casperjs run.js 

이 오류 메시지가 나타납니다 : cannot find module casper../casper, ./casper과 같은 다른 경로를 사용해 보았습니다. 운이 없다!

어떻게 utils.js 내부에서 올바르게 사용할 수 있는지 알려주십시오. 감사합니다

캐스퍼를 성공적으로 설치 했으므로 문제는 없습니다. run.js의 요구 사항이 적용 되었기 때문에 utils.js의 요구 사항이 필요합니다.

+0

당신은 그럼'NPM을 시도 할 경우? casperjs를 사용하려고 install casperjs'. – Jalil

+0

casperjs CLI를 활성화하기 위해 npm instal을 전역 적으로 만 사용한 것 같습니다. 모듈을 가져와야하기 때문에 adam의 제안을 받아 들여 로컬 설치를 수행해야합니다. – spiritwalker

+0

@Jalil 예 I 캐스퍼를 사용하고 있습니다. 내부 run.js에 문제가 없습니다. 내부 utils.js에만 문제가 있습니다. –

답변

1

미안하지만이 질문은 처음에는 nodejs 질문이며 오해의 소지가있는 의견이 몇 개 남았습니다. 이것이 사실상 팬텀 관련이있는 것으로 밝혀졌습니다.

그래서 가장 쉬운 해결책은 예를 들어 (모든 캐스퍼는 관련 모듈을 필요로하는 모든 기본에 대한 patchRequire을 사용하는 것입니다. 다음 코드는 나를 위해 작동합니다.

var require = patchRequire(require) 
var casper = require('casper') 
관련 문제