在这个javascript导入中做什么〜(代字号)?

Ric*_*ich 18 javascript typescript reactjs

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

import {IDispatch} from '~react-redux~redux';
Run Code Online (Sandbox Code Playgroud)

Visual Studio 2017强调了这一行("无法找到模块"),但它确实可以在浏览器中使用.我以前从未见过这种语法,也不知道它试图做什么?

这里有一张开放式门票:https://github.com/FountainJS/generator-fountain-react/issues/70

Lyu*_*mir 20

~webpack结合使用的Tilde()意味着执行查找node_modules以解析路径.

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

import { IDispatch } from '~react-redux~redux';
Run Code Online (Sandbox Code Playgroud)

相当于

import { IDispatch } from 'relative_path_to_node_modules/react-redux~redux';
Run Code Online (Sandbox Code Playgroud)

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

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

  • 你能引用任何关于此的文件吗? (2认同)

Div*_*ani 6

这是一个打字稿文件,import看起来像一个typings生成的模块 IMO。

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

根据Blake Embrey 的说法,在这个关于打字 github 存储库的线程中:

它是依赖项的命名空间。