日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
手把手教你使用TypeScript開(kāi)發(fā)Node.js應(yīng)用

為什么要使用TypeScript?

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),呼倫貝爾企業(yè)網(wǎng)站建設(shè),呼倫貝爾品牌網(wǎng)站建設(shè),網(wǎng)站定制,呼倫貝爾網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,呼倫貝爾網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

為了減少代碼編寫(xiě)過(guò)程中出現(xiàn)的錯(cuò)誤,以及更好的維護(hù)你的項(xiàng)目,本文將手把手教你配置一個(gè)簡(jiǎn)單的開(kāi)發(fā)環(huán)境來(lái)編寫(xiě)Node.js的應(yīng)用程序,創(chuàng)建這樣的一個(gè)開(kāi)發(fā)環(huán)境有很多方式,這只是其中一種,希望對(duì)你有所幫助!

手把手教你使用TypeScript開(kāi)發(fā)Node.js應(yīng)用

首先配置package.json

因?yàn)橐陧?xiàng)目中使用Webpack,所以首先得創(chuàng)建一個(gè)package.json文件,我們可以使用npm init來(lái)生成

 
 
 
 
  1.  "name": "start", 
  2.  "version": "1.0.0", 
  3.  "description": "", 
  4.  "main": "index.js", 
  5.  "scripts": { 
  6.  "test": "echo "Error: no test specified" && exit 1" 
  7.  }, 
  8.  "author": "", 
  9.  "license": "ISC" 
  10. }

后面用到其他的在添加

開(kāi)始

我們?cè)陧?xiàng)目的根目錄創(chuàng)建一個(gè)src目錄,添加一個(gè)main.js和information-logger.js文件,我們先使用Javascript來(lái)創(chuàng)建:

 
 
 
 
  1. // src/information-logger.js 
  2. const os = require('os'); 
  3. const { name, version} = require('../package.json'); 
  4. module.exports = { 
  5.  logApplicationInformation: () => 
  6.  console.log({ 
  7.  application: { 
  8.  name, 
  9.  version, 
  10.  }, 
  11.  }), 
  12.  logSystemInformation: () => 
  13.  console.log({ 
  14.  system: { 
  15.  platform: process.platform, 
  16.  cpus: os.cpus().length, 
  17.  }, 
  18.  }), 
  19. }; 
  20. // src/main.js 
  21. const informationLogger = require('./information-logger'); 
  22. informationLogger.logApplicationInformation(); 
  23. informationLogger.logSystemInformation();

我們先運(yùn)行一下:node main.js(先到src目錄下),打印了我的筆記本電腦的信息:

Webpack

首先***件事就是要配置Webpack的依賴項(xiàng),記得用下面的命令,帶上 -d,因?yàn)槲覀冎辉陂_(kāi)發(fā)環(huán)境下 :

 
 
 
 
  1. npm i -D webpack webpack-cli

我們沒(méi)用到webpack-dev-server,安裝完成后我們創(chuàng)建webpack.config.js的配置文件。

 
 
 
 
  1. 'use strict'; 
  2. module.exports = (env = {}) => { 
  3.  const config = { 
  4.  entry: ['./src/main.js'], 
  5.  mode: env.development ? 'development' : 'production', 
  6.  target: 'node', 
  7.  devtool: env.development ? 'cheap-eval-source-map' : false, 
  8.  }; 
  9. return config; 
  10. };

最開(kāi)始我們沒(méi)那么多的配置需要配置。我們要使用它,先改一下package.json :

 
 
 
 
  1. “scripts”:{  
  2.  “start”:“webpack --progress --env.development”, 
  3.  “start :prod”:“webpack --progress”  
  4.  },

然后我們就可以通過(guò)任一命令(npm start)來(lái)構(gòu)建應(yīng)用程序,它會(huì)創(chuàng)建一個(gè)dist/main.js,我們可也使用webpack.config.js指定輸出不同的名稱,現(xiàn)在的目錄結(jié)構(gòu)應(yīng)該如下:

nodemon

為什么不用webpack-dev-server,是因?yàn)闆](méi)法用,所以可以使用nodemon來(lái)解決,它可以在我們開(kāi)發(fā)期間重新啟動(dòng)Node.js的應(yīng)用程序,一樣我們先來(lái)安裝,依然需要 -d 。

 
 
 
 
  1. npm i -D nodemon-webpack-plugin

然后重新配置webpack.config.js 。

 
 
 
 
  1. // webpack.config.js 
  2. 'use strict'; 
  3. const NodemonPlugin = require('nodemon-webpack-plugin'); 
  4. module.exports = (env = {}) => { 
  5.  const config = { 
  6.  entry: ['./src/main.js'], 
  7.  mode: env.development ? 'development' : 'production', 
  8.  target: 'node', 
  9.  devtool: env.development ? 'cheap-eval-source-map' : false,  
  10.  resolve: { // tells Webpack what files to watch. 
  11.  modules: ['node_modules', 'src', 'package.json'], 
  12.  },  
  13.  plugins: [] // required for config.plugins.push(...); 
  14.  }; 
  15. if (env.nodemon) { 
  16.  config.watch = true; 
  17.  config.plugins.push(new NodemonPlugin()); 
  18.  } 
  19. return config; 
  20. };

Webpack 監(jiān)視配置將在我們更改文件時(shí)重建應(yīng)用程序,nodemon在我們構(gòu)建完成重新啟動(dòng)應(yīng)用程序,需要重新配置下package.json 。

 
 
 
 
  1. "scripts": { 
  2.  "start": "webpack --progress --env.development --env.nodemon", 
  3.  "start:prod": "webpack --progress --env.nodemon", 
  4.  "build": "webpack --progress --env.development", 
  5.  "build:prod": "webpack --progress", 
  6.  "build:ci": "webpack" 
  7.  },

使用TypeScript

先安裝依賴項(xiàng):

 
 
 
 
  1. npm i -D typescript ts-loader @types/node@^10.0.0

ts-loader(ts加載器)

因?yàn)橐胻s-loader Webpack插件來(lái)編譯我們的TypeScript,所以得讓W(xué)ebpack知道我們是使用了ts-loader插件來(lái)處理TypeScript文件的,更新之前的webpack.config.js

 
 
 
 
  1. // webpack.config.js 
  2.  'use strict'; 
  3. const NodemonPlugin = require('nodemon-webpack-plugin'); 
  4. module.exports = (env = {}) => { 
  5.  const config = { 
  6.  entry: ['./src/main.ts'], 
  7.  mode: env.development ? 'development' : 'production', 
  8.  target: 'node', 
  9.  devtool: env.development ? 'cheap-eval-source-map' : false, 
  10.  resolve: { 
  11.  // Tells Webpack what files to watch  
  12.  extensions: ['.ts', '.js'], 
  13.  modules: ['node_modules', 'src', 'package.json'], 
  14.  }, 
  15.  module: { 
  16.  rules: [ 
  17.  { 
  18.  test: /.ts$/, 
  19.  use: 'ts-loader', 
  20.  }, 
  21.  ], 
  22.  }, 
  23.  plugins: [], // Required for config.plugins.push(...); 
  24.  }; 
  25. if (env.nodemon) { 
  26.  config.watch = true; 
  27.  config.plugins.push(new NodemonPlugin()); 
  28.  } 
  29. return config; 
  30. };

tsconfig.json

TypeScript的配置文件:

 
 
 
 
  1. // tsconfig.json 
  2.  "compilerOptions": { 
  3.  "target": "esnext", 
  4.  "module": "esnext", 
  5.  "moduleResolution": "node", 
  6.  "lib": ["dom", "es2018"], 
  7.  "allowSyntheticDefaultImports": true, 
  8.  "noImplicitAny": true,
  9.   "noUnusedLocals": true, 
  10.  "removeComments": true,  
  11.  "resolveJsonModule": true, 
  12.  "strict": true, 
  13.  "typeRoots": ["node_modules/@types"] 
  14.  }, 
  15.  "exclude": ["node_modules"], 
  16.  "include": ["src/**/*.ts"] 
  17. }

然后更改下之前創(chuàng)建的js文件擴(kuò)展名:

 
 
 
 
  1. // information-logger.ts 
  2. import os from 'os'; 
  3. import { name, version } from '../package.json'; 
  4. export class InformationLogger { 
  5.  static logApplicationInformation(): void { 
  6.  console.log({ 
  7.  application: { 
  8.  name, 
  9.  version, 
  10.  }, 
  11.  }); 
  12.  } 
  13. static logSystemInformation(): void { 
  14.  console.log({ 
  15.  system: { 
  16.  platform: process.platform, 
  17.  cpus: os.cpus().length, 
  18.  }, 
  19.  }); 
  20.  } 
  21. // main.ts 
  22. import { InformationLogger } from './information-logger'; 
  23. InformationLogger.logApplicationInformation(); 
  24. InformationLogger.logSystemInformation();

現(xiàn)在目錄結(jié)構(gòu)應(yīng)該是這樣的

總結(jié)

我們可以使用多種方式來(lái)創(chuàng)建TypeScript的Nodejs應(yīng)用,不必拘泥于這一種,而且可能會(huì)有人并不贊同,因?yàn)門(mén)ypeScript比純Javascript更需要花費(fèi)更多精力,不過(guò)在新項(xiàng)目中,你仍然可以嘗試這種方式,如果你有什么好的建議,歡迎在評(píng)論區(qū)留下你的意見(jiàn)!


網(wǎng)頁(yè)名稱:手把手教你使用TypeScript開(kāi)發(fā)Node.js應(yīng)用
網(wǎng)站URL:http://m.5511xx.com/article/cdjpgdc.html