我认为直接从node_modules目录导入模块会很棒,而不需要为它手动提供声明文件(让我们假设声明是由模块本身提供的).我想这个问题是声明附带的依赖(文件路径可以相对于模块解析,但这会导致重复,编译器无法处理).
目前使用节点模块非常不方便,因为从npm存储库进行简单安装是不够的,我们必须手动搜索声明并在我们的项目中提供它们.假设我们的项目依赖于10个节点模块(所有模块都有声明),一年之后我们想要更新它们.我们必须手动搜索新的声明,让我们说我们有大约20个这样的项目(这将成为一场噩梦).也许应该有一个选项直接从节点模块导入.ts文件?
目前使用节点模块非常不方便,因为从npm存储库进行简单安装是不够的,我们必须手动搜索声明并在我们的项目中提供它们.假设我们的项目依赖于10个节点模块(所有模块都有声明),一年之后我们想要更新它们.我们必须手动搜索新的声明,让我们说我们有大约20个这样的项目(这将成为一场噩梦).也许应该有一个选项直接从节点模块导入.ts文件?
你有什么建议吗?
这是CodePlex的重新发帖,听取您的意见……
解决方法
如果你使用grunt-typescript,那么我有一个pull请求,这至少对我来说是解决了这个问题.见
https://github.com/k-maru/grunt-typescript/pull/36
从拉请求README
使用node_modules中的模块(即npm)
使用npm包的标准方法是提供定义文件
指定打字稿的包并从那里导入模块.
///<reference path="path/to/mod.d.ts" /> import mod = module('mod')
typescript编译器会将导入转换为nodejs require.
var mod = require('mod')
这是非常笨拙的,因为你需要知道准确的路径
npm安装包和npm可以把包放在任何地方
处理多个级别的依赖项时的级别.
使用grunt配置中的node_modules选项,您可以
导入一个npm包,而不需要知道确切的级别
只要在本地安装,npm就已经安装了软件包
而不是全球性的.
要在打字稿源中导入npm模块,请执行以下操作:
import npmModule = module('node_modules/npmModule/foo')
这主要是因为幸运的机会. Typescript编译器将读取如果是,则打字稿定义文件node_modules / npmModule / foo.d.ts在通往根的路上和结果的某一点出现如果需要,javascript文件将包含npmModule / foo的require.
原文地址:https://www.jb51.cc/nodejs/445732.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。