安装
npm i typescript -D
使用
tsc [文件名] // 不加文件名,编译全部的ts文件
安装
npm i ts-node -D
使用
ts-node index.ts
直接执行tsc,生成的js文件和ts文件都混在一个目录里,现在要ts和js文件分开,编译生成的js单独放在dist目录
解决方法:tsconfig.json中有个配置项:outDir;如下进行配置
{ "compilerOptions": { "outDir": "./dist", } }
-w 可以动态监听ts文件的修改并实时编译成js文件
tsc -w
在node环境下执行js文件
node index.js
如何监听js文件变化;可以使用nodemon
安装
npm i nodemon -D
使用
nodemon node index.js
在package.json中
"scripts": { "build": "tsc -w", "start": "nodemon node ./dist/crowller.js" },
执行npm run build
会动态编译ts文件;
然后执行npm start
会动态执行js文件
产生的问题1:
问题:
原因:
解决:
在package.json中
"scripts": { "build": "tsc -w", "start": "nodemon node ./dist/crowller.js" }, "nodemonConfig": { "ignore": [ "data/*" ] },
产生的问题2:
执行命令后会同时开启两个命令行窗口,有没有办法只开启一个命令行呢?
答案是有的,使用concurrently来并行执行
安装
npm i concurrently -D
使用
"scripts": { "dev:build": "tsc -w", "dev:start": "nodemon node ./dist/crowller.js", "dev": "concurrently npm:dev:build npm:dev:start" },
npm:dev:build
的第一个冒号是固定写法,可以看做是run;第二个是命令dev:build
中自带的;多个命令之间空格来间隔
如果命令是dev-build
,那么下面应该写成npm:dev-build
启动时输入 npm run dev即可
命令优化npm:dev:build npm:dev:start
可以简写为npm:dev:*
,就是运行所有带dev:的命令
package.json中
"scripts": { "dev:build": "tsc -w", "dev:start": "nodemon node ./dist/crowller.js", "dev": "concurrently npm:dev:*" }, "nodemonConfig": { "ignore": [ "data/*" ] },
tsconfig.json中
{ "compilerOptions": { "outDir": "./dist", } }