我正在使用typescript
node
。我可以毫无问题地写出来:
import * as $ from "jquery";
jquery
的定义文件位于node_modules/@types/jquery
。但是,以下任何一项都不适用decimal.js
的{{1}}定义文件:
node_modules/decimal.js
但是,如果我将文件包含在其绝对路径中,则它就像魅力一样:
import { Decimal } from "decimal";
import { Decimal } from "decimal.js";
我使用import { Decimal } from "/path/to/project/node_modules/decimal.js/decimal";
中提供的最新版本以及这些命令行参数:
- removeComments --inlineSourceMap --inlineSources --allowSyntheticDefaultImports --charset UTF-8 --module amd --target ES6 --newLine LF --moduleResolution classic
答案 0 :(得分:0)
考虑到您的模块位于node_modules
,您希望使用node
样式的模块解析。将--moduleResolution classic
替换为--moduleResolution Node
。
请参阅here
但是,非相对模块名称的解析以不同方式执行。 Node将在名为node_modules的特殊文件夹中查找您的模块。 node_modules文件夹可以与当前文件位于同一级别,也可以位于目录链中的较高位置。 Node将走向目录链,查看每个node_modules,直到找到您尝试加载的模块。
经典风格以不同方式解析模块。根据链接来源:
这曾经是TypeScript的默认解析策略。如今,这种策略主要是为了向后兼容。