【发布时间】:2015-09-20 15:18:01
【问题描述】:
我想要进行以下项目设置: 三个顶级文件夹client、common 和server。它们都是一个单独的包,有自己的 package.json 和 node_modules 文件夹。
对于下面的例子,我使用这个结构:
- common
- node_modules
- package.json
- entities.ts
- server
- node_modules
- package.json
- app.ts
- tsconfig.json
我尝试在服务器文件夹中运行 tsc
客户端和服务器都应该使用的文件将位于公共文件夹中,我想使用 ES6 模块语法从服务器和客户端导入它们,例如 import {MyModel} from 'common/entities';
问题是我不知道如何设置 typescript 来理解这个设置。
我使用npm link 使 common 在服务器中显示为正常的 node_module,但上面的导入会生成错误Cannot find module 'common/entities'。我尝试将"moduleResolution": "node" 添加到compilerOptions 没有结果。
是否有可能让 typescript 来理解这个设置,或者是否有一个首选的设置?
【问题讨论】:
-
你很久以前就问过这个问题——从那以后在寻找答案方面有什么进展吗?
-
基本上虽然比我想要的要先进一些。您必须单独构建 common 到 .d.ts 和 .js 文件,并使用 npm 链接(或纱线工作区以获得最大的舒适度)才能像任何其他节点模块一样使用 common
标签: typescript