TS-Node 體驗

【給連接不贅述】【提醒坑】【想更簡單學計算機必須會看懂英語】【win讓你專一代碼將來深刻linux】【儘管文件恨多,可是咱們不去dissect 是永遠不會的】css

https://www.tslang.cn/docs/handbook/typescript-in-5-minutes.htmlhtml

https://github.com/Microsoft/TypeScript-Node-Starter#typescript-node-starternode

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/jquery

 

【錦囊妙計】npm install 若是遇到問題,請使用npm doctor

……………………………………………………………………linux

   啓動 mongodgit

"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe" --dbpath "C:\Dev\mongodb\data"es6

……………………………………………………………………………………………………github

npm run build == VSCODE快捷鍵ctrl+shift+b 
npm start == VSCODE快捷鍵 ctrl+shift+p 而後輸入run task選擇npm start
打開 http://localhost:3000

…………………………………………………………………………mongodb

=>跳過【Deploy 部署環節】typescript

…………………………………………………………………………………………………………………………………………………………………………………………………………

項目結構,因爲TS比較工程化,最主要的是【ts文件在src下,編譯後在dist下】

Name Description
.vscode 內建
dist Contains the distributable (or output) from your TypeScript build. This is the code you ship
node_modules Contains all your npm dependencies
src Contains your source code that will be compiled to the dist dir
src/config Passport authentication strategies and login middleware. Add other complex config code here
src/controllers Controllers define functions that respond to various http requests
src/models Models define Mongoose schemas that will be used in storing and retrieving data from MongoDB
src/public Static assets that will be used client side
src/types Holds .d.ts files not found on DefinitelyTyped. Covered more in this section
src/server.ts 程序入口
test Contains your tests. Seperate from source because there is a different build process.
views Views define how your app renders on the client. In this case we're using pug
.env.example API keys, tokens, passwords, database URI. Clone this, but don't check it in to public repos.
.travis.yml Used to configure Travis CI build
.copyStaticAssets.ts Build script that copies images, fonts, and JS libs to the dist folder
jest.config.js Used to configure Jest
package.json File that contains npm dependencies as well as build scripts
tsconfig.json Config settings for compiling server code written in TypeScript
tsconfig.tests.json Config settings for compiling tests written in TypeScript
tslint.json Config settings for TSLint code style checking

 

 …………………………………………………………………………………………………………………………………………………………………………

編譯是能夠配置的。tsconfig.json

    "compilerOptions": { "module": "commonjs", "esModuleInterop": true, //導入語法 import foo from "foo" "target": "es6", "noImplicitAny": true,   //【最佳實踐】true打開的話對應咱們要用任何的Library都須要.d.ts即便是空定義,放心能夠下載。 "moduleResolution": "node", "sourceMap": true,    //debug用 "outDir": "dist", "baseUrl": ".", "paths": {      //默認會去掃描node_modules下@types(.d.ts文件),咱們私有定義.d.ts不是下載來的要配置一下。 "*": [ "node_modules/*", "src/types/*" ] } },
"include": [  //將須要編譯的文件包含進來,也能夠exclude掉 "src/**/*" ]

 …………………………………………………………………………………………………………………………………………………………………………

構建,其中package.json有可供咱們調用的命令,npm run <script-name>

Npm Script Description
start Does the same as 'npm run serve'. Can be invoked with npm start
build Full build. Runs ALL build tasks (build-sassbuild-tstslintcopy-static-assets)
serve Runs node on dist/server.js which is the apps entry point
watch-node Runs node with nodemon so the process restarts if it crashes. Used in the main watch task
watch Runs all watch tasks (TypeScript, Sass, Node). Use this if you're not touching static assets.
test Runs tests using Jest test runner
watch-test Runs tests in watch mode
build-ts Compiles all source .ts files to .js files in the dist folder
watch-ts Same as build-ts but continuously watches .ts files and re-compiles when needed
build-sass Compiles all .scss files to .css files
watch-sass Same as build-sass but continuously watches .scss files and re-compiles when needed
tslint Runs TSLint on project files
copy-static-assets Calls script that copies JS libs, fonts, and images to dist directory
debug Performs a full build and then serves the app in watch mode
serve-debug Runs the app with the --inspect flag
watch-debug The same as watch but includes the --inspect flag so you can attach a debugger

 …………………………………………………………………………………………………………………………………………………………………………

.d.ts 文件用來定義類型,這是由於不是全部js都有ts版本,經過這項定義,ts將幫助編輯器得到類型提示。

有些.d.ts甚至不須要咱們操心,能夠去下載 => https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types

//.d.ts平常管理

1.當npm install包的時候,對應咱們去下載.d.ts文件。

【下載DefinitelyTyped】npm install --save-dev @types/jquery    (務必加選項或者-D,由於只是編譯期須要的依賴。)

2.下載不到,咱們就要去tsconfig.json配置下path包含咱們本身定義的.d.ts文件。

【本身定義.d.ts】參見 => https://github.com/Microsoft/dts-gen

若是沒成功生成的話,須要【跳過.d.ts類型檢查】直接在文件中寫 declare module "<some-library>";//至關於空文件

而後能夠繼續一步一步改善(不能生成只好這樣) http://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html

 …………………………………………………………………………………………………………………………………………………………………………

相關文章
相關標籤/搜索