網(wǎng)站做微信鏈接怎么做企業(yè)網(wǎng)絡(luò)推廣服務(wù)
?生成tsconfig.json 文件
這個(gè)文件是通過(guò)tsc --init
命令生成的
配置詳解
"compilerOptions": {"incremental": true, // TS編譯器在第一次編譯之后會(huì)生成一個(gè)存儲(chǔ)編譯信息的文件,第二次編譯會(huì)在第一次的基礎(chǔ)上進(jìn)行增量編譯,可以提高編譯的速度"tsBuildInfoFile": "./buildFile", // 增量編譯文件的存儲(chǔ)位置"diagnostics": true, // 打印診斷信息 "target": "ES5", // 目標(biāo)語(yǔ)言的版本"module": "CommonJS", // 生成代碼的模板標(biāo)準(zhǔn)"outFile": "./app.js", // 將多個(gè)相互依賴的文件生成一個(gè)文件,可以用在AMD模塊中,即開(kāi)啟時(shí)應(yīng)設(shè)置"module": "AMD","lib": ["DOM", "ES2015", "ScriptHost", "ES2019.Array"], // TS需要引用的庫(kù),即聲明文件,es5 默認(rèn)引用dom、es5、scripthost,如需要使用es的高級(jí)版本特性,通常都需要配置,如es8的數(shù)組新特性需要引入"ES2019.Array","allowJS": true, // 允許編譯器編譯JS,JSX文件"checkJs": true, // 允許在JS文件中報(bào)錯(cuò),通常與allowJS一起使用"outDir": "./dist", // 指定輸出目錄"rootDir": "./", // 指定輸出文件目錄(用于輸出),用于控制輸出目錄結(jié)構(gòu)"declaration": true, // 生成聲明文件,開(kāi)啟后會(huì)自動(dòng)生成聲明文件"declarationDir": "./file", // 指定生成聲明文件存放目錄"emitDeclarationOnly": true, // 只生成聲明文件,而不會(huì)生成js文件"sourceMap": true, // 生成目標(biāo)文件的sourceMap文件"inlineSourceMap": true, // 生成目標(biāo)文件的inline SourceMap,inline SourceMap會(huì)包含在生成的js文件中"declarationMap": true, // 為聲明文件生成sourceMap"typeRoots": [], // 聲明文件目錄,默認(rèn)時(shí)node_modules/@types"types": [], // 加載的聲明文件包"removeComments":true, // 刪除注釋 "noEmit": true, // 不輸出文件,即編譯后不會(huì)生成任何js文件"noEmitOnError": true, // 發(fā)送錯(cuò)誤時(shí)不輸出任何文件"noEmitHelpers": true, // 不生成helper函數(shù),減小體積,需要額外安裝,常配合importHelpers一起使用"importHelpers": true, // 通過(guò)tslib引入helper函數(shù),文件必須是模塊"downlevelIteration": true, // 降級(jí)遍歷器實(shí)現(xiàn),如果目標(biāo)源是es3/5,那么遍歷器會(huì)有降級(jí)的實(shí)現(xiàn)"strict": true, // 開(kāi)啟所有嚴(yán)格的類型檢查"alwaysStrict": true, // 在代碼中注入'use strict'"noImplicitAny": true, // 不允許隱式的any類型"strictNullChecks": true, // 不允許把null、undefined賦值給其他類型的變量"strictFunctionTypes": true, // 不允許函數(shù)參數(shù)雙向協(xié)變"strictPropertyInitialization": true, // 類的實(shí)例屬性必須初始化"strictBindCallApply": true, // 嚴(yán)格的bind/call/apply檢查"noImplicitThis": true, // 不允許this有隱式的any類型"noUnusedLocals": true, // 檢查只聲明、未使用的局部變量(只提示不報(bào)錯(cuò))"noUnusedParameters": true, // 檢查未使用的函數(shù)參數(shù)(只提示不報(bào)錯(cuò))"noFallthroughCasesInSwitch": true, // 防止switch語(yǔ)句貫穿(即如果沒(méi)有break語(yǔ)句后面不會(huì)執(zhí)行)"noImplicitReturns": true, //每個(gè)分支都會(huì)有返回值"esModuleInterop": true, // 允許export=導(dǎo)出,由import from 導(dǎo)入"allowUmdGlobalAccess": true, // 允許在模塊中全局變量的方式訪問(wèn)umd模塊"moduleResolution": "node", // 模塊解析策略,ts默認(rèn)用node的解析策略,即相對(duì)的方式導(dǎo)入"baseUrl": "./", // 解析非相對(duì)模塊的基地址,默認(rèn)是當(dāng)前目錄"paths": { // 路徑映射,相對(duì)于baseUrl// 如使用jq時(shí)不想使用默認(rèn)版本,而需要手動(dòng)指定版本,可進(jìn)行如下配置"jquery": ["node_modules/jquery/dist/jquery.min.js"]},"rootDirs": ["src","out"], // 將多個(gè)目錄放在一個(gè)虛擬目錄下,用于運(yùn)行時(shí),即編譯后引入文件的位置可能發(fā)生變化,這也設(shè)置可以虛擬src和out在同一個(gè)目錄下,不用再去改變路徑也不會(huì)報(bào)錯(cuò)"listEmittedFiles": true, // 打印輸出文件"listFiles": true// 打印編譯的文件(包括引用的聲明文件)
}// 指定一個(gè)匹配列表(屬于自動(dòng)指定該路徑下的所有ts相關(guān)文件)
"include": ["src/**/*"
],
// 指定一個(gè)排除列表(include的反向操作)"exclude": ["demo.ts"
],
// 指定哪些文件使用該配置(屬于手動(dòng)一個(gè)個(gè)指定文件)"files": ["demo.ts"
]
介紹幾個(gè)常用的
1.include
指定編譯文件默認(rèn)是編譯當(dāng)前目錄下所有的ts文件
2.exclude
指定排除的文件
3.target
指定編譯js 的版本例如es5 ?es6
4.allowJS
是否允許編譯js文件
5.removeComments
是否在編譯過(guò)程中刪除文件中的注釋
6.rootDir
編譯文件的目錄
7.outDir
輸出的目錄
8.sourceMap
代碼源文件
9.strict
嚴(yán)格模式
10.module
默認(rèn)common.js ?可選es6模式 amd ?umd 等