- 编译
- 动态编译&热更新
- 并行编译
- 配置文件
编译
编译 package.json
{
"scripts":{
"dev":"ts-node [需要运行的文件路径].ts",
"build":"tsc", // 打包
}
}
打包到指定文件夹 tsconfig.json
"outDir":"./build"
动态编译&热更新
npm install nodemon -D
// nodemon 默认只会监听.js文件的变化
package.json
{
"scripts":{
"build":"tsc -w",
"start":"nodemon node [需要运行的js文件路径].js" // 表示只要js文件发生变化,将会自动运行
},
"nodemonConfig":{
"ignore":[
"data/*" // 表示该文件夹下的所有文件忽略变化
]
}
}
并行编译
npm install concurrently -D
package.json
{
"scripts":{
"dev:build":"tsc -w",
"dev:start":"nodemon node [需要运行的js文件路径].js",
"dev":"concurrently npm:dev:*" // 并行执行dev:后面的命令
}
}
配置文件
tsconfig.json
{
"include": ["./demo.ts"], /*需要编译的Ts文件(默认目标是根目录)*/
"exclude": ["./demo1.ts"], /*编译除该项之外的ts文件(默认目标是根目录)*/
"files":["./demo.ts"] /*作用和include相同*/
"compilerOptions":{
"removeComments":true, /*编译时过滤掉注释*/
"noImplicitAny":false, /*不要求强制书写any类型,(进行类型推断不会提示语法错误)*/
"strictNullChecks":false, /*不强制进行null校验,(关闭后null类型可以赋值到任意类型中)*/
"rootDir":"./src", /*指定编译的文件地址*/
"outDir":"./build", /*指定编译后的文件地址*/
"incremental":true, /*增量编译(直接添加新增变化的编译内容,类似于diff算法)*/
"allowJs":true, /*将.js文件进行编译,编译成target的目标语法*/
"checkJS":true, /*检测js语法*/
"sourceMap":true, /*打包时生成文件的sourceMap?*/
"noUnusedLocals":true, /*检查未使用的变量*/
"noUnusedParameters":true, /*校验函数中未使用的参数*/
}
}
将多个ts文件打包到一个文件里面
{
"compilerOptions":{
"outFile":"./build/page.js",
"module":"amd"
}
}