🔎 搜索词
"createProgram" "compiler" "compiler api" "js files createProgram" "js compiler api" "js files compiler" "programmatic compiler js"
🕗 版本与回归信息
请给我的项目:
my-project/
├─ src/
│ ├─ index.js
├─ tsconfig.json
以下代码:
import ts from 'typescript';
let tsConfigFile = ts.findConfigFile(
process.cwd(),
ts.sys.fileExists,
"tsconfig.json"
);
const { config } = ts.readConfigFile(tsConfigFile, ts.sys.readFile);
const program = ts.createProgram(['src/index.js'], config);
program.getSourceFiles().forEach((sf) => {
console.log(1, sf.fileName);
});
其中 tsconfig.json
看起来像这样:
{
"compilerOptions": {
"strict": true,
"outDir": "./dist-types",
"target": "ESNext",
"allowSyntheticDefaultImports": true,
"moduleResolution": "NodeNext",
"module": "NodeNext",
"lib": ["ESNext", "DOM"],
"declaration": true,
"emitDeclarationOnly": true,
"allowJs": true,
"checkJs": true,
"skipLibCheck": true,
"verbatimModuleSyntax": true
},
"include": [
"src/index.js"
],
"exclude": ["node_modules"],
}
输出:
但是 src/index.js
是从源文件中缺失的。我觉得这在过去是有效的,或者至少对普通的js文件也应该有效。
⏯ Playground链接
无
💻 代码
// Your code here
🙁 实际行为
ts.createProgram
不包含 src/index.js
🙂 预期行为
ts.createProgram
应包含 src/index.js
关于问题的附加信息
- 无响应*
7条答案
按热度按时间mum43rcc1#
已修复:
9fkzdhlc2#
建议的修复方法也是错误的;你需要在配置文件加载后进行一次解析:
8yparm6h3#
感谢您的更新!这个信息有记录吗?我发现很难找到关于这个的信息,并且不确定在哪里搜索。
uurv41yg4#
我们确实需要将这个添加到 https://github.com/microsoft/TypeScript/wiki/Using-the-Compiler-API -
any
产生的readConfigFile
中,因为它们经常让人们陷入困境。jgwigjjp5#
建议的修复方法也是错误的;你需要在配置文件加载后进行一次解析:
我实际上尝试了这个,但对我不起作用。我不得不这样做:
i2byvkas6#
是的,
using-the-compiler-api
页面确实需要一些改进。u2nhd7ah7#
嗯,结果发现那实际上是在丢弃我的$x^{
checkJs
}$和$x^{allowJs
}$,并对一些字符串进行一些奇怪的数字转换。这是我最后找到的方法。$x^{
}$