如何将 TypeScript tsconfig 放在另一个位置
How to put TypeScript tsconfig in another location
我正在尝试创建一个存储库,在我们本地托管的 github 实例中包含我们公司的通用 linting 规则。这样我们就有了一套可以轻松分享的共同规则。还有我们的打字稿定义和 PrettierJs 规则的配置。
文件结构如下:
/lint-common
/config
.eslintrc.js
.pretterrc
tsconfig.json
package.json
在另一个项目中安装时,它看起来像这样:
/node_modules
/lint-common
/config
.eslintrc.js
.pretterrc
tsconfig.json
package.json
package.json <-- Consuming package for the project that lint-common has been installed into
从我安装了 lint-common
的消费项目中,我在 package.json 中有如下脚本:
"scripts": {
"lint": "eslint -c /node_modules/lint-common/config/.eslintrc.js --ext .js src",
"pretty": "prettier --write --config /node_modules/lint-common/config/.prettierrc src/**/*.js"
}
到目前为止一切正常。但是当我尝试为 TypeScript
执行此操作时,它的行为却大不相同。 lint
和 pretty
从我指定的 src
目录处理,tsconfig 坚持从它自己的位置处理文件。
对于 TypeScript,我尝试添加这样的脚本:
"tsc": "tsc --p ../../config/tsconfig.json",
--p
是 --project
选项 - 它允许我指定 tsconfig 文件的位置。在 tsconfig 我有:
"include": ["src/**/*]
但是,我只收到以下错误:
No inputs were found in config file ...
我可以通过将其更改为来解决此问题:
"include": ["../../../src/**/*]
tsconfig 中的 include
选项正在搜索与 tsconfig 位置相关的文件 - 而不是我 运行 来自 npm
命令的位置。
有什么办法可以解决这个问题吗?我试过使用 rootDir
选项,但似乎没有任何效果。
Is there a way I can get around this?
文档没有提到方法,据我所知,也没有。
我认为一个可行的解决方案是在新项目的顶层包含一个 npm [post-install] 脚本,它创建一个 tsconfig.json
文件,它利用 extends
属性 引用嵌套在 node_modules
.
中的配置
我正在尝试创建一个存储库,在我们本地托管的 github 实例中包含我们公司的通用 linting 规则。这样我们就有了一套可以轻松分享的共同规则。还有我们的打字稿定义和 PrettierJs 规则的配置。
文件结构如下:
/lint-common
/config
.eslintrc.js
.pretterrc
tsconfig.json
package.json
在另一个项目中安装时,它看起来像这样:
/node_modules
/lint-common
/config
.eslintrc.js
.pretterrc
tsconfig.json
package.json
package.json <-- Consuming package for the project that lint-common has been installed into
从我安装了 lint-common
的消费项目中,我在 package.json 中有如下脚本:
"scripts": {
"lint": "eslint -c /node_modules/lint-common/config/.eslintrc.js --ext .js src",
"pretty": "prettier --write --config /node_modules/lint-common/config/.prettierrc src/**/*.js"
}
到目前为止一切正常。但是当我尝试为 TypeScript
执行此操作时,它的行为却大不相同。 lint
和 pretty
从我指定的 src
目录处理,tsconfig 坚持从它自己的位置处理文件。
对于 TypeScript,我尝试添加这样的脚本:
"tsc": "tsc --p ../../config/tsconfig.json",
--p
是 --project
选项 - 它允许我指定 tsconfig 文件的位置。在 tsconfig 我有:
"include": ["src/**/*]
但是,我只收到以下错误:
No inputs were found in config file ...
我可以通过将其更改为来解决此问题:
"include": ["../../../src/**/*]
tsconfig 中的 include
选项正在搜索与 tsconfig 位置相关的文件 - 而不是我 运行 来自 npm
命令的位置。
有什么办法可以解决这个问题吗?我试过使用 rootDir
选项,但似乎没有任何效果。
Is there a way I can get around this?
文档没有提到方法,据我所知,也没有。
我认为一个可行的解决方案是在新项目的顶层包含一个 npm [post-install] 脚本,它创建一个 tsconfig.json
文件,它利用 extends
属性 引用嵌套在 node_modules
.