繁体   English   中英

节点模块使用requirejs和typescript

[英]Node module using requirejs and 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?

Node.js不使用AMD规范的JavaScript模块,而是使用CommonJS模块。 您需要告诉TypeScript编译器按照此规范编译模块。 这可以通过将--module "commonjs"标志传递给编译器来轻松实现。

请注意,尽管CommonJS规范使用了require关键字,但这与RequireJS完全不同。 Node.js的模块加载不依赖RequireJS,它具有基于CommonJS规范的自己的模块加载器。

简而言之:尝试避免使用RequireJS和node.js。

他的问题很有道理。 与标准commonjs相比,在node中使用requirejs具有许多优点: http: //requirejs.org/docs/node.html

如何使用AMD / Requirejs构建节点模块: http: //requirejs.org/docs/node.html#nodeModules

如果您不需要同时使用requirejs AND节点, 那是我的情况,当我有2个单独的打字稿构建时,一个在前面,一个在后面,但是我只有一个package.json来放置所有“ @types”因此tsc会在node_modules/@types选择两个.d.ts

您可以手动告诉tscto使用type选项获取某些类型:

types: [ "requirejs" ]表示正面, types: [ "node" ]背面

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM