這也是爲何愈來愈多的公司開始採用typescript的緣由,若是使用typescript,對應打包的webpack配置就會有所差別。因此咱們看看webpack怎麼對typescript進行打包支持。新建一個項目, 初始化package.json,安裝webpack。typescript的後綴是index.tsxjavascript
class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } greet() { return "Hello, " + this.greeting; } } let greeter = new Greeter("world"); alert(greeter.greet())
const path = require('path'); module.exports = { mode: 'production', entry: './src/index.tsx', module: { rules: [{ test: /\.tsx?$/, // ts-loader是官方提供的處理tsx的文件 use: 'ts-loader', exclude: /node_modules/ }] }, output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') } }
package.jsonhtml
"scripts": { "build": "webpack" },
運行npm run build。這樣是否打包成功了,打包試試,發現報錯了,以下java
提示說缺乏一個tsconfig.json文件。node
tsconfig.json { "compilerOptions": { "outDir": "./dist", // 這塊寫不寫均可以,webpack.config.js裏面已經配置了output "module": "es6", // 指的是用的es module的引入方式 "target": "es5", // 指的是打包成es5代碼 "allowJs": true, // 容許tsx引入js文件 } }
配置好以後,再運行npm run build。發現打包成功了,出現了dist,bundle.js。這個時候將bundle.js複製到控制太,能彈出hello world。說明打包生成的文件沒有任何問題。webpack
import * as _ from 'lodash'; class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } greet() { return _.join(['Hello,',this.greeting], ''); } } let greeter = new Greeter('world'); alert(greeter.greet())
因此在寫ts的時候,在寫代碼的時候就會報錯,從而更快的發現問題。git
三、我怎麼知道哪些庫有對應的ts,types呢es6