如何在不破坏节点导入的情况下连接打字稿输出?

时间:2016-02-07 06:14:21

标签: node.js typescript

我使用this method连接typescript编译器的输出。然而,这样做会破坏我对节点中相对路径模块的导入。

以下成功编译&符连接;

// Group.ts
class Group { 
    doSomething() { ... }
}
export = Group

// Main.ts
import Group = require('./Group');
new Group().doSomething();

但执行它然后抛出;

Error: Cannot find module './Group'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (c:\git\nzb-watch\src\compiled.js:64:13)
    at Module._compile (module.js:397:26)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:429:10)
    at startup (node.js:139:18)
    at node.js:999:3

如何在不抛出此错误的情况下实现已编译js的连接?

2 个答案:

答案 0 :(得分:3)

不是要求TypeScript编译器将所有内容都推送到单个文件中,而是应该使用模块捆绑器,它将负责创建捆绑包,然后在运行时从捆绑包中加载模块。这里有很多捆绑包,包括rollupwebpackbrowserify等等。

答案 1 :(得分:0)

import ... require是针对js文件的。转到ts后,使用import ... from

import Group from './Group';