node.js - 从打字稿包导入子文件夹?
问题描述
在https://github.com/DavidSouther/monots我有一个简单的多项目 Typescript 配置。
common/
src/
具有库实用程序,并从to编译lib/
。is (package.json
我相信)设置为向消费者公开.js
and.d.ts
文件,并且is in commonjs。lib/
.js
server/
是一个消费应用程序,无论是 nodejs 还是通过 webpack 捆绑的 (TODO)。与 类似common/
,它是从src/
to编译的lib/
,尽管没有声明,但仍然在 commonjs 中。
运行后(cd common; npx tsc)
,common/lib
填写正确。运行后(cd server ; npm install)
,tsc 失败并显示
src/index.ts:3:24 - error TS2307: Cannot find module 'common/assert' or its corresponding type declarations.
3 import { assert } from "common/assert";
~~~~~~~~~~~~~~~
从节点的模块加载系统中,这应该找到common/lib/assert/index.js
and common/lib/assert/index.d.ts
。
什么是规范配置common/package.json
并common/tsconfig.json
确保任意消费项目能够“就像”注册表中的任何其他包一样对待包?
解决方案
推荐阅读
- sql - 如何使用表中的数据作为 SQL 中键值的实体?
- mongodb - 一段时间后,docker-compose MongoDB 副本集数据丢失
- pandas - 如何根据其他行的条件创建列 - Pandas Dataframe?
- vue.js - 如何从 vuex 实时 Vue
- maven - 无法测试 Maven 插件
- php - TYPO3 10.4.12 安装在第二步被阻止
- javascript - 一个接一个地响应执行动作调用不起作用
- apache-spark - Spark 3.0 UTC 到 AKST 转换失败,出现 ZoneRulesException:未知时区 ID
- c# - Sql server 我想让存储过程在运行时获取表名并返回此表中的最后一行
- javascript - Vue firebase查询:如何使用无限加载显示下一个结果?