我正在阅读有关路径映射的内容tsconfig.json,我想使用它来避免使用以下丑陋的路径:
项目组织有点奇怪,因为我们有一个包含项目和库的单一存储库.项目按公司和浏览器/服务器/通用分组.
如何配置路径tsconfig.json而不是:
import { Something } from "../../../../../lib/src/[browser/server/universal]/...";
我可以用:
import { Something } from "lib/src/[browser/server/universal]/...";
webpack配置中还需要其他东西吗?还是tsconfig.json足够了?
我真的很喜欢可以看出该文件夹结构在这里有一个前端做出反应和处理时,一些后端与快递:
root
??? backend
|   ??? node_modules
|   ??? public
|   ??? src
?   ?   ??? Server.ts
|   ??? package.json
|   ??? tsconfig.json
??? frontend (created using create-react-app)
|   ??? node_modules
|   ??? public
|   ??? src
?   ?   ??? Index.js
|   ??? package.json
|   ??? tsconfig.json
我认为将单独的包与个人分开node_modules是合理的,因为前端和后端基本上是完全不同的东西,例如它们需要不同的节点模块。此外,这种模块化方法在视觉上对我很有吸引力,并且存储库看起来很整洁。
但是,当我需要在前端和后端之间共享内容时,我遇到了这种结构的问题。我shared在项目根目录下添加了一个文件夹,该文件夹包含自己的项目和自己的tsconfig.json,package.json等等。这种方法是here和here方法的混合。对于后端,这完全正常:设置了tsconfig.json适当的(使用TypeScript 项目引用和别名导入),我可以root/shared/src/myFile.ts像这样引用文件:
root
??? backend
|   ??? node_modules
|   ??? …我已经在文件夹中创建src/modules/my-module/了package.json了导出我们需要的所有内容的主文件。
我现在可以从中导入import {A} from '../../modules/my-module'
我想将语法更改为import {A} from 'my-module',我有几个原因:
我已经成功地通过添加来编译它tsconfig.json
"paths": {
  "my-module": ["src/modules/my-module"]
}
但我无法通过 node.js 运行结果,因为节点找不到模块。在这种情况下有没有办法使用非相关模块引用。