2014-01-15 107 views
2

我使用requirejs和typescript作爲node_module。使用requirejs和typescript的節點模塊

https://github.com/Ayolan/validator-extended/blob/master/app.js

它的工作原理,但我不能加載它一旦從NPM安裝。 它看起來像node_module上的requirejs配置更改我的項目(baseUrl和nodeRequire配置實際)的配置。

有一種方法可以在node_module上使用TS和requirejs?

+1

爲什麼在Node.js模塊中使用RequireJS? Node.js有自己的模塊加載 – thomaux

+0

加載打字稿文件。 (AMD) – Vadorequest

+1

您可以將TypeScript文件編譯爲CommonJS規範(由節點使用)。將'--module「commonjs」'傳遞給編譯器 – thomaux

回答

3

Node.js不將JavaScript規範用於JavaScript模塊,而是使用CommonJS模塊。你需要告訴TypeScript編譯器將你的模塊編譯成這個規範。這可以通過將--module "commonjs"標誌傳遞給編譯器來輕鬆實現。

請注意,雖然CommonJS規範使用require關鍵字,但它與RequireJS完全不同。 Node.js不依賴於RequireJS來加載模塊,它有自己的基於CommonJS規範的模塊加載器。

總之:儘量避免使用RequireJS和node.js.

2

如果你沒有在同一時間需要requirejs和節點 這是我的情況,當我有2個單獨的打字稿,一個用於前面,一個用於後面,但我只有一個package.json將tty中的所有「@types」放入tsc中,同時選擇兩個.d.ts node_modules/@types

您只需手動告訴tscto採取某些類型與類型選項:爲後面

希望這有助於

types: [ "requirejs" ]正面和types: [ "node" ]

+0

那個功能當時不存在,謝謝提示! :) – Vadorequest