demo05 webpack + typescript

栏目: JavaScript · 发布时间: 4年前

内容简介:typescript(简称 ts )是 javascript 的超集,具有类型系统,是可编译的。可以想象得到,在代码运行之前能够进行代码类型检查和编译是多么重要的事儿(就像 Java 等强类型语言一样)。比如前端框架 @Angular 就默认集成了 ts , 赋予了 @Angular 项目可以编译的功能。对 ts 不了解的? 先撸一遍 ts 文档?:

typescript(简称 ts )是 javascript 的超集,具有类型系统,是可编译的。可以想象得到,在代码运行之前能够进行代码类型检查和编译是多么重要的事儿(就像 Java 等强类型语言一样)。

比如前端框架 @Angular 就默认集成了 ts , 赋予了 @Angular 项目可以编译的功能。

对 ts 不了解的? 先撸一遍 ts 文档?: www.tslang.cn/docs/handbo…

ts 默认根据tsconfig.json 配置文件(很强大)来对 ts 进行编译。

ts 可以单独使用 typescript 编译器编译,也可以在 webpack 中通过 ts-loader 来进行编译(类似于 babel-loader )。

2.安装相关依赖

typescript 相关

npm install --save-dev typescript
复制代码

webpack 相关

npm install --save-dev ts-loader
复制代码

3.目录结构

// `--` 代表目录, `-` 代表文件
  --demo05
    --src
      -app.js
      -User.js
    -index.html
    -tsconfig.json
    -webpack.config.js
复制代码

src/app.js

import { User } from './User';

const user1: User = {
  name: 'simple',
  age: '25',
  hobby: 'play the guitar'
};

// 这里参数不够,tsc编译器会报错,webpack编译不通过
// const user2: User = {
//   name: 'simple2',
//   age: '25'
// };

console.log(user1);
复制代码

src/User.ts

export interface User {
  name: String,
  age: String,
  hobby: String,
  options?: Object // 可选参数
}

// 理解一下 webpack 的 Tree Sharking?
export interface Animal {
  name: String
}
复制代码

4.编写 tsconfig.json 配置文件

tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "allowJs": true,
    "lib": [
      "es2018",
      "dom"
    ],
  },
  "include": [
    "./src/*"
  ],
  "exclude": [
    "./node_modules"
  ]
}
复制代码

关于 tsconfig.json 满多学问的,具体的配置根据项目或者参考配置文档来: www.tslang.cn/docs/handbo…

也可以找一些开源项目,看一下别人是怎么配置的。

5.编写 webpack 配置文件

webpack.config.js

const path = require("path");
module.exports = {
  mode: 'production' || 'development',
  entry: {
    index: "./src/app.ts"
  },
  output: {
    publicPath: __dirname + "/dist/", // 打包后资源文件的引用会基于此路径
    path: path.resolve(__dirname, "dist"), // 打包后的输出目录
    filename: "bundle.js"
  },
  module: {
    rules: [
      {
        test: /\.ts?$/,
        use: 'ts-loader',
        exclude: /node_modules/
      }
    ]
  },
  resolve: {
    extensions: ['.ts', '.js']
  }
}
复制代码

6.执行打包命令

(默认你已经安装了全局 webpack 以及 webpack-cli )

webpack
复制代码

打包成功后,会在demo05目录下生成 dist/app.bundle.js

7.验证打包结果

创建 index.html 文件,引用打包生成的主文件 (app.bundle.js), 分别用 ie , Chrome 浏览器打开,并查看控制台。

输出结果:

{name: "simple", age: "25", hobby: "play the guitar"}
复制代码

以上所述就是小编给大家介绍的《demo05 webpack + typescript》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

自媒体之道

自媒体之道

吴晨光 / 中国人民大学出版社有限公司 / 2018-7-31 / CNY 49.80

内容简介: 《自媒体之道》为你解决四个问题: 1. 一篇10万+的刷屏文章是怎么写出来的? 2. 一支10万+的爆款视频是怎么做出来的? 3. 一个100万+粉丝的大号是怎么运营的? 4. 神秘的人工智能(AI)和备受争议的算法是怎么运行的? 这部超过30万字的著作,集纳了中国顶尖自媒体人和平台运营者3年的实操经验。全书13章,详解案例150+,提炼“锦囊秒句”......一起来看看 《自媒体之道》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具