Electron 앱에서 작업하고 Chromium 브라우저 창에서 실행중인 다른 스크립트의 모듈을 요구하는 데 문제가 있습니다. 상대 경로를 지정하기 위해 내가 무엇을 하든지 관계없이 항상 모듈을 찾을 수 없다는 것과 같은 오류가 발생합니다.Chromium 스크립트의 전자 필요 모듈
내 프로젝트는 다음과 같이 설정:
index.html
scripts
controllers
controller.js
models
game.js
tests
spec
gameSpec.js
기본적으로 양육 페이지입니다 내 index.html을 때 몸의 끝에 정상적인 스크립트로 전자 출시,로드 controller.js 꼬리표.
<script src="scripts/controllers/controller.js"></script>
controller.js가 상단에 다음과 같은 코드가 있습니다 전자 크롬 창을 실행하면
var Game = require("../models/game.js");
.... some other code .....
var game = new Game();
을, 나는 즉시이 문제로 실행 :
이Uncaught Error: Cannot find module '../models/game.js'
내 가정이 있다는 것입니다 controller.js 파일에서 가져 오는 game.js 파일에 대한 상대 경로가 필요하지만, 어떤 종류의 조정을해도 항상 그 오류가 발생합니다.
var Game = require("../../models/game.js");
describe("Game", function() { ... });
내가 상대 경로 지정이 요구하는 방법에 대한 잘못된 가정을 만드는 중이라서 : 나는 테스트에서 사양이 모두 실행하고 성공적으로는 다음과 같이 요구합니다 통과 폴더이 있기 때문에 그것은 단순한 구문 오류 생각하지 않습니다 Chromium 브라우저에서 실행하면 어떻게됩니까? 어떤 도움을 주셔서 감사합니다!
답장을 보내 주셔서 감사합니다. 불행히도 가 작동하지 않아 동일한 오류가 발생합니다. 다행히 var 게임에 대한 귀하의 제안 = require (__ dirname ....)는 매력처럼 작동하지만, 나는 그것이 깨지기 쉬운 것처럼 보이고 앱을 패키징하고 싶을 때 무슨 일이 생길지 염려합니다. 나는 노드없이이 프로젝트를 .Net에서 변환 할 것이므로 마이그레이션 단계에서 아기 단계를 밟으려고한다. – user1433070
여기에서'controller.js'는 CommonJS/Node 모듈이지만''는 CommonJS 모듈에 대해 아무것도 모르고 있습니다. 파일을 노드의 모듈 로더를 거치지 않고 현재 문서에 저장합니다. @dvlsg가'controller.js'를로드하는 정확한 방법은'require'를 사용하는 것입니다. –