这个 javascript 导入中的 ~ (波浪号) 在做什么?

IT技术 javascript reactjs typescript
2021-05-21 16:54:43

在取自 Fountain-webapp typescript MVC 示例 ( http://fountainjs.io/ )的 App.tsx 中,导入包含以下行:

import {IDispatch} from '~react-redux~redux';

Visual Studio 2017 强调了这一行(“找不到module”),但它确实在浏览器中工作。我以前从未见过这种语法,不知道它试图做什么?

这里有一张公开票提到它:https : //github.com/FountainJS/generator-fountain-react/issues/70

2个回答

波浪号 ( ~) 与webpack结合使用意味着执行查找node_modules以解析路径。

换句话说,它是解析为 的预定义别名node_modules

import { IDispatch } from '~react-redux~redux';

相当于

import { IDispatch } from 'relative_path_to_node_modules/react-redux~redux';

编辑:不幸的是,我不能引用任何关于此的文档,它是基于经验,欢迎您使用更准确的描述编辑这篇文章。

现在我也注意到了这个~redux部分,所以你可能想看看其他答案,因为我也很困惑。

这是一个typescript文件,import看起来像一个typings生成的module IMO。

我不太精通typescript,但typings 可能使用这种~(波浪号)格式来检查特定命名空间中的module依赖关系。

根据Blake Embrey 的说法,在关于 Typings github repo 的这个线程中:

它是依赖项的命名空间。