




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第VSCode開發(fā)TypeScript的實(shí)現(xiàn)步驟目錄第一個(gè)程序配置文件tsconfig.json調(diào)試模塊化使用Webpack打包客戶端代碼TypeScript是JaveScript的超集,為JavaScript增加了很多特性,它可以編譯成純JavaScript在瀏覽器上運(yùn)行。TypeScript已經(jīng)成為各種流行框架和前端應(yīng)用開發(fā)的首選。本文概要介紹使用VSCode開發(fā)TypeScript的過(guò)程。
第一個(gè)程序
在VSCode中開發(fā)TypeScript,首先要安裝TypeScript,這里使用npm安裝:
npminstalltypescript-g
安裝完成后,運(yùn)行下面代碼看一下版本:
tsc-version
進(jìn)入控制臺(tái),創(chuàng)建一個(gè)文件夾,進(jìn)入這個(gè)文件夾,運(yùn)行命令code.。這會(huì)啟動(dòng)VSCode,并且打開當(dāng)前的文件夾。在文件夾中創(chuàng)建一個(gè)文件hello.ts,寫幾句代碼:
letv="hello";
console.log(v);
進(jìn)入控制臺(tái),輸入tschello.ts,會(huì)生成對(duì)應(yīng)的hello.js,輸入nodehello.js,會(huì)運(yùn)行代碼。
配置文件tsconfig.json
現(xiàn)在我們創(chuàng)建TypeScript項(xiàng)目的配置文件tsconfig.json,最簡(jiǎn)單的內(nèi)容如下:
{
"compilerOptions":{
"target":"es5",
"module":"commonjs"
編輯這個(gè)文件時(shí),VSCode的智能提示很有幫助。常用的設(shè)置還有:js代碼的輸出路徑、是否可以包括js文件、調(diào)試時(shí)使用的代碼映射等等,下面是復(fù)雜一些的配置:
{
"compilerOptions":{
"target":"es5",
"module":"commonjs",
"allowJs":true,
"sourceMap":true,
"outDir":"out"
這里輸出路徑設(shè)置為out,我們把前面編譯生成的js文件刪掉,重新編譯一下,注意,由于有了tsconfig.json文件,在終端中只要輸入tsc就可以了。
可以看到,編譯的文件保存在out子目錄中,并且多了map文件。
調(diào)試
現(xiàn)在我們看如何在VSCode中進(jìn)行調(diào)試,在前面的ts代碼界面,按F5調(diào)試,會(huì)出現(xiàn)選擇環(huán)境的提示框,選擇Node.js,出現(xiàn)下面的錯(cuò)誤:
選擇配置任務(wù),然后選擇tsc:構(gòu)建-tsconfig.json,這時(shí),會(huì)創(chuàng)建新的文件夾.vscode,在這個(gè)文件夾中創(chuàng)建task.json,內(nèi)容如下:
{
"version":"2.0.0",
"tasks":[
"type":"typescript",
"tsconfig":"tsconfig.json",
"problemMatcher":[
"$tsc"
"group":"build",
"label":"tsc:構(gòu)建-tsconfig.json"
再次按F5,仍然出現(xiàn)上面的錯(cuò)誤。選擇添加配置,會(huì)創(chuàng)建launch.json文件:
{
"version":"0.2.0",
"configurations":[
"type":"node",
"request":"launch",
"name":"啟動(dòng)程序",
"skipFiles":[
"node_internals/**"
"program":"${workspaceFolder}\\helloworld.ts",
"preLaunchTask":"tsc:build-tsconfig.json",
"outFiles":[
"${workspaceFolder}/out/**/*.js"
再次按F5,仍然會(huì)出現(xiàn)錯(cuò)誤,檢查一下,會(huì)發(fā)現(xiàn)生成的兩個(gè)文件中,任務(wù)的名稱是不一樣的,將task.json中的tsc:構(gòu)建-tsconfig.json修改為tsc:build-tsconfig.json,再次按F5運(yùn)行,這次可以了。試著加個(gè)斷點(diǎn),也可以:
模塊化
我們希望模塊化開發(fā)我們的代碼,將代碼分割到獨(dú)立的文件中,便于分別開發(fā)與調(diào)試。我們希望顯示地聲明引用,避免全局變量函數(shù)等等帶來(lái)的混亂。這時(shí),我們需要使用export聲明可以被其它模塊使用的函數(shù)和變量,在使用這些函數(shù)和變量的模塊中,使用import導(dǎo)入需要的函數(shù)、變量等等。我們創(chuàng)建一個(gè)新的文件myfunctions.ts,里面只有一個(gè)函數(shù):
exportfunctionmyName(){
return"張三";
修改helloworld.ts,調(diào)用這個(gè)函數(shù):
import{myName}from'./myfunctions'
letv="hello"+myName();
console.log(v);
使用Webpack打包客戶端代碼
前幾部分針對(duì)的是服務(wù)端開發(fā),對(duì)于客戶端的代碼,我們希望1)可以打包為單獨(dú)的js文件進(jìn)行發(fā)布;2)可以方便地運(yùn)行客戶端程序;3)可以方便地進(jìn)行調(diào)試。這里我們使用Webpack作為打包工具,在VSCode中創(chuàng)建TypeScript的客戶端項(xiàng)目骨架。
首先,為我們的測(cè)試項(xiàng)目創(chuàng)建一個(gè)目錄,在控制臺(tái)進(jìn)入這個(gè)目錄,運(yùn)行code.啟動(dòng)vscode。在終端中執(zhí)行npminit,創(chuàng)建項(xiàng)目的packeg.json,內(nèi)容如下:
{
"name":"mydevnew",
"version":"1.0.0",
"description":"mynewtypescriptproject",
"main":"index.js",
"scripts":{
"test":"echo\"Error:notestspecified\"exit1"
"author":"",
"license":"ISC"
然后,安裝必要的程序包,在終端中執(zhí)行:
npminstall--save-devwebpackwebpack-clitypescriptts-loaderwebpack-dev-serversource-map-loader
接下來(lái),添加typescript的配置文件tsconfig.json:
{
"compilerOptions":{
"module":"es6",
"target":"es5",
"sourceMap":true,
"declaration":true,
"declarationDir":"./dist/typing",
"lib":[
"webworker",
"es6",
"es5",
"dom"
"exclude":[
"node_moudles",
"dist"
還要添加webpack.config.js:
constpath=require('path');
module.exports={
mode:'development',
entry:'./src/main.ts',//入口文件
output:{
filename:'main.js',//編譯出來(lái)的文件名
path:path.resolve(__dirname,'dist'),//編譯文件所在目錄
publicPath:'/dist/',//靜態(tài)資源目錄,可以設(shè)為“編譯文件所在目錄”,代碼自動(dòng)編譯,網(wǎng)頁(yè)自動(dòng)刷新
module:{
rules:[
//Forournormaltypescript
test:/\.ts$/,
use:[
loader:'ts-loader'
exclude:/(:node_modules)/,
resolve:{
modules:[
'src',
'node_modules'
extensions:[
'.js',
'.ts'
devServer:{
static:{
directory:path.join(__dirname,''),
hot:true,
compress:true,
host:'localhost',
port:8888
devtool:'source-map',
修改package.json,在scritps中增加:
"build":"webpack",
"dev":"webpack-dev-server",
到此,配置環(huán)境基本完成,可以寫代碼了,創(chuàng)建src目錄用來(lái)保存代碼,在src中創(chuàng)建main.ts和hello.ts,代碼如下:
import{myName}from"hello"
console.log("TypeScript測(cè)試項(xiàng)目");
console.log(myName());
document.body.innerHTML="你好!"+myName();
hello.ts是一個(gè)小的模塊:
exportfunctionmyName(){
return"張三";
在根目錄創(chuàng)建一個(gè)引導(dǎo)頁(yè)面index.html:
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
titleTypeScript測(cè)試項(xiàng)目/title
/head
body
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 月餅定貨協(xié)議書
- 車廠車輛改造合同協(xié)議
- 土地承包合同終止
- 社區(qū)農(nóng)業(yè)科技應(yīng)用示范項(xiàng)目協(xié)議
- 專業(yè)論壇會(huì)議舉辦協(xié)議
- 車訂車定金合同協(xié)議
- 過(guò)渡合同協(xié)議
- 轉(zhuǎn)讓露營(yíng)推車合同協(xié)議
- 超齡工合同協(xié)議
- 滯留人員協(xié)議書
- 現(xiàn)場(chǎng)OPC SERVER服務(wù)器與OPC 客戶端遠(yuǎn)程連接設(shè)置方法
- 諾貝爾文學(xué)獎(jiǎng)獲得者莫言
- 粵教科技版科學(xué)六年級(jí)下冊(cè)第14課《生物生存的環(huán)境》教學(xué)課件
- 高考語(yǔ)文作文素材:《典籍里的中國(guó)》課件33張
- 隧道施工安全教育培訓(xùn)
- 2022年道路交通安全防汛工作應(yīng)急預(yù)案
- (完整)《神經(jīng)病學(xué)》考試題庫(kù)及答案
- 邊坡支護(hù)之錨桿施工技術(shù)ppt版(共35頁(yè))
- 黃芩常見(jiàn)的病蟲害癥狀及防治措施
- 思政課社會(huì)實(shí)踐報(bào)告1500字6篇
- GB∕T 25119-2021 軌道交通 機(jī)車車輛電子裝置
評(píng)論
0/150
提交評(píng)論