我有一个javascript节点应用程序,它现在非常大,我想切换到typescript来加速开发并更好地维护代码。我使用以下命令安装了带有node
和mocha
类型的typescript
npm i typescript
npm i @types/node
npm i @types/mocha
我使用一个tsconfig.json
文件,如下所示:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "dist",
"sourceMap": true
},
"files": [
"./node_modules/@types/mocha/index.d.ts",
"./node_modules/@types/node/index.d.ts"
],
"include": [
"src/**/*.ts",
],
"exclude": [
"node_modules"
]
}
我在package.json
中添加了"tsc": "tsc"
脚本,以便使用npm run tsc
命令编译代码。
以下是我的项目架构:
- dist // created at compile time
- src
--- server.ts
--- configs
----- config.js
--- // other subdirectories
- package.json
- tsconfig.json
当我编译代码时,它会创建一个dist
文件夹,其中只包含编译后的server.ts
文件,我将这个文件重命名为.ts
。因此,当我使用node dist/server.js
启动编译后的应用程序时,所有其他文件都会丢失,并且应用程序会崩溃。
我的问题是:我是否必须将整个应用程序切换到typescript,将每个文件重命名为.ts
并更改导入,还是有一种方法可以逐步完成并保留一些javascript文件?
发布于 2018-10-14 04:22:47
正如Jeff在我的帖子评论中提到的,这里是你如何逐步切换到typescript的方法。基于他提供的链接Migrating from javascript documentation,这里是我如何设法让它工作的。
我将tsconfig.json
文件更改为:
{
"compilerOptions": {
"allowJs": true, // <-- option to allow js files as input in the ts compiler
"target": "es6",
"module": "commonjs",
"outDir": "./dist",
"sourceMap": true
},
"files": [
"./node_modules/@types/mocha/index.d.ts",
"./node_modules/@types/node/index.d.ts"
],
"include": [
"./src/**/*",
],
"exclude": [
"node_modules"
]
}
我还更改了项目的package.json
,以启动应用程序并从编译文件夹(在我的示例中为dist
)中运行测试:
...
"scripts": {
"start": "node ./dist/server.js",
"test": "tsc && ./node_modules/.bin/mocha --recursive ./dist/test",
"tsc": "tsc",
},
...
https://stackoverflow.com/questions/52796773
复制相似问题