【发布时间】:2019-09-09 05:05:39
【问题描述】:
我正在尝试在我的 TypeScript 应用程序中导入 package.json:
import packageJson from '../package.json';
我的tsconfig.json 包含以下内容:
{
"compilerOptions": {
"rootDir": "./src/"
"outDir": "./dist/",
"baseUrl": ".",
"resolveJsonModule": true
}
}
问题是当我编译这个时,我得到了
error TS6059: File '/path/to/package.json' is not under 'rootDir' '/path/to/app/src/'. 'rootDir' is expected to contain all source files.
我不确定我是否理解这个问题,因为 ./src/ 和 /.dist 都有相同的父级 ..,所以 TypeScript 可以不理会 import '../package.json' 和 它会工作 来自rootDir 或outDir。
无论如何,我尝试了以下方法,但结果并不令人满意:
- 删除
rootDir- 编译有效,但dist将包含dist/src,这是我不想要的 - 删除
outDir- 然后src被.js文件污染(如果sourceMap为真,则.js.map) - 添加
@ts-ignore- 编译停止导入../package.json的文件
这个限制的解决方法是什么,将生成的文件保存在dist,并允许从rootDir的父目录导入?
【问题讨论】:
-
// @ts-ignore有帮助吗? -
我遇到了同样的问题。添加
// @ts-ignore没有帮助。 -
给定的
import语句与给定的tsconfig不一致。产生错误。请参阅我建议的编辑。 -
您是否尝试设置
baseUrl而不是rootDir? -
我发现如果你只使用
require而不是import,这可以工作。当然,这假设您在节点平台上。并且在分发包时,您不是分发dist,而是分发包含package.json的整个目录。
标签: javascript typescript