开发环境配置

在学习TS前,我们首先需要配置TS开发环境。

全局安装 Typescript 对 TypeScript 进行编译

  1. npm install typescript -g

查看TS版本号

  1. tsc -v

初始化ts配置文件

  1. tsc --init # 生成tsconfig.json

vscode 中新建一个工程,然后在这个工程中新建一个 .ts 文件,如 1.ts,并输入如下代码

  1. const a = 1

在终端执行

  1. tsc 1.ts

可以将ts文件编译成js文件,可以看到与1.ts的同级目录下生成了一个同名的1.js文件,内容为

  1. var a = 1

这样 .ts 文件就成功编译成了 .js 文件。

但是当我们每次修改 .ts 文件后都要手动执行tsc x.ts命令才能得到最新的编译后的 .js 文件,这样操作起来比较麻烦。

我们可以在终端执行

  1. tsc --watch 1.ts

来监控到ts文件变化自动生成js文件。

如果我们只是想简单的看下 .ts 文件的运行结果,并不想生成对应的 .js 文件,这时在vscode中我们可以右键单击选择 run code 来运行 ts 文件,使用 run code 运行 .ts 文件需要先全局安装 ts-node。

  1. npm install ts-node -g

配置 rollup 环境

上面的方式只能让我们将 TS 编译成 JS ,但是无法让我们查看编译后的文件在浏览器端运行的结果。下面我们通过配置 rollup ,来实现这样的效果。

  1. 初始化配置文件 tsconfig.json

    1. tsc --init
  2. 将配置文件中的 "module" 选项改为 "ESNext"

    1. {
    2. "module": "ESNext"
    3. }
  3. 安装依赖:

    1. npm install rollup typescript rollup-plugin-typescript2 @rollup/plugin-node-resolve rollup-plugin-serve -D
  4. 新建 src/index.ts文件并输入测试内容,如:

    1. const a = 1;
    2. console.log(a);
  5. 新建 public/index.html文件,并输入如下代码:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Document</title>
    8. </head>
    9. <body>
    10. <script src="../dist/bundle.js"></script>
    11. </body>
    12. </html>
  6. 在项目根目录创建 rollup.config.js 文件,并将以下内容复制到文件中:

  1. import ts from 'rollup-plugin-typescript2' // 解析ts的插件
  2. import { nodeResolve } from '@rollup/plugin-node-resolve' // 解析第三方模块的插件
  3. import serve from 'rollup-plugin-serve' // 启动本地服务的插件
  4. import path from 'path'
  5. export default {
  6. input: 'src/index.ts',
  7. output: {
  8. format: 'iife', // 立即执行
  9. file: path.resolve(__dirname, 'dist/bundle.js'),
  10. sourcemap: true // 根据源码产生映射文件
  11. },
  12. plugins: [
  13. nodeResolve({ // 第三方文件解析
  14. extensions: ['.js', '.ts']
  15. }),
  16. ts({
  17. // 指定插件的配置文件
  18. tsconfig: path.resolve(__dirname, 'tsconfig.json')
  19. }),
  20. serve({
  21. openPage: '/public/index.html',
  22. contentBase: '',
  23. port: 3000
  24. })
  25. ]
  26. }
  1. package.json 文件配置
  1. "scripts": {
  2. "dev": "rollup -c -w"
  3. }
  1. 我们可以通过 npm run dev 启动服务,运行完命令后我们可以在 dist 文件夹下看到编译后的 bundle.js文件,内容如下: ```javascript (function () { ‘use strict’;

    var a = 1; console.log(a);

})(); //# sourceMappingURL=bundle.js.map `` 后续我们再修改index.ts` 文件后,都会及时自动打包编译文件。