2015-04-22 4 views
0

Когда я пытаюсь импортировать локальный файл, он либо выдает ошибку во время выполнения, но и компилирует ее с помощью tsc works. Когда я заставляю его работать для node.js, машинописный текст выдает ошибку во время компиляции.node.js/typescript не может найти локальный модуль

Когда я

import A = require("./A"); 

node.js жалуется, что не может найти модуль и машинопись компилируется нормально.

Но когда я изменить его на

import A = require("./js/A"); 

node.js может найти модуль, но Машинопись говорит мне, что это ошибка.

Схема такова:

js 
\- A.ts 
\- B.ts 

компилировать файлы отдельно, и я уже попытался найти для изменения корневого каталога для машинописи компилятором, но я не мог найти ничего.

+0

Вы пытаетесь импортировать A в B? Если это так, вы должны сделать 'import A = require (« A »);' – Martin

+0

@Martin, если я делаю эти компиляции типов, но тогда код node.js не работает, потому что node.js ожидает, что внутренние модули будут путями относительно root из каталога ("./js/A"), но машинописные тексты ожидают его относительно файла машинописных файлов ("./A") – WebFreak001

ответ

0

Не видя, как вы компилируете TypeScript, и не видя, как вы пытаетесь сделать require() эти файлы с узла, трудно ответить на этот вопрос.

Даже так, я могу вам сказать, что как машинопись и node.js ожидают require() быть дан путь, который по отношению к файлу делает требуют.

Если бы я иметь JS/A.ts, которые выглядели так:

import B = require("./B"); 
console.log(B.thing); 

и А/B.ts Js, которые выглядели так:

var myStuff = { 
    thing: "I'm a thing!" 
} 
export = myStuff; 

я мог бы составить оба файлы с одного tsc -m commonjs ./js/A.ts

и тогда я мог бы запустить узел с: node ./js/A.js и будет видеть вывод:

I'm a thing! 
+0

Хорошо, просто ваниль nodejs отлично работает, но с помощью node-webkit он не работает. https://github.com/nwjs/nw.js/wiki/Differences-of-JavaScript-contexts – WebFreak001

+0

@ WebFreak001 как вы загружаете js-файлы в node-webkit? Вам все равно придется использовать 'require()' для них. Если вы поместите путь к скомпилированному jsScript-скрипту в '

Смежные вопросы