好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

尝试自己搭一个简单的typescript运行环境

开发typescript项目有一些现成的脚手架,比如:typescript-library-starter,它的配置齐全,更适合用在实际项目开发上。其实在学习阶段可以自己搭建一个简单的typescript运行环境,只用作学习typescript语法。

 

初始化项目

依次执行:

 mkdir  ts-learn- demo

cd ts -learn- demo

npm init  -y

 

然后全局安装 typescript,便于在任意文件夹使用 tsc 命令:

 //   安装失败的话请以管理员身份运行,此处是sudo命令是mac上管理员权限 
 sudo  npm  install  typescript -g

 

安装成功后进入项目根目录,使用 tsc 命令进行初始化:

tsc --init

此时项目根目录里多了一个 tsconfig.json 文件,它的配置信息参考: https://www.tslang.cn/docs/handbook/tsconfig-json.html

 

在项目里安装 typescript,注意这一次不是全局安装,全局安装是为了tsc命令,这里是为了本地编译和开发

npm  install  typescript

 

配置TSLint(可选)

类似ESLint,统一代码风格,全局安装TSLint:

 sudo  npm  install  tslint -g

然后在项目中初始化:

tslint -i

此时项目目录中会多一个 tslint.json 文件,关于它的配置可自行百度,在学习阶段默认的配置即可。

 

配置webpack

使用webpack进来开发和打包,先安装一些必要的插件:

npm  install  webpack webpack-cli webpack-dev-server - D

npm   install  html-webpack-plugin clean-webpack-plugin - D

npm   install  ts-loader -D

 

在项目根目录创建 webpack.config.js 文件:

const HtmlWebpackPlugin = require( '  html-webpack-plugin  '  )
const { CleanWebpackPlugin }  = require( '  clean-webpack-plugin  '  )

module.exports  =  {
  entry:   '  ./src/index.ts  '  ,
  output: {
    filename:   '  main.js  '  
  },
  resolve: {
    extensions: [  '  .js  ' ,  '  ts  ' ,  '  tsx  '  ]
  },
  module: {
      //   配置以.ts/.tsx结尾的文件都用ts-loader解析 
     rules: [
      {
        test:  /\.tsx?$/ ,
        use:   '  ts-loader  '  ,
        exclude:  /node_modules/ 
      }
    ]
  },
  devtool: process.  env .NODE_ENV ===  '  production  '  ?  false  :  '  inline-source-map  '  ,
  devServer: {
    contentBase:   '  ./dist  '  ,
    stats:   '  errors-only  '  ,
    compress:   false  ,
    host:   '  localhost  '  ,
    port:   8888  
  },
  plugins: [
    new CleanWebpackPlugin({
      cleanOnceBeforeBuildPatterns: [  '  ./dist  '  ]
    }),
    new HtmlWebpackPlugin({
      template:   '  ./src/template/index.html  '  
    })
  ]
} 

 

上述webpack配置信息中可知,项目源码放在 src 目录下,入口文件是 ./src/index.ts 。接下来还要创建模板html文件,在 ./src/template目录下创建index.html模板:

<!DOCTYPE html>
<html lang= "  en  " >
  < head >
    <meta charset= "  UTF-8  "  />
    <meta name= "  viewport  "  content= "  width=device-width, initial-scale=1.0  "  />
    <meta http-equiv= "  X-UA-Compatible  "  content= "  ie=edge  "  />
    <title>TS Demo</title>
  </ head >
  <body></body>
</html>

 

目录结构如下:

 

 

开发和打包

webpack配置文件已经写好,接下来只要写好script命令就可以轻松开发了。在package.json文件中指定命令:

 //   start 是启动本地开发
  //   build是打包 
 "  scripts  "  : {
      "  start  " :  "  cross-env NODE_ENV=development webpack-dev-server --mode=development --config webpack.config.js  "  ,
      "  build  " :  "  cross-env NODE_ENV=production webpack --mode=production --config webpack.config.js  "  
  }, 

注意到命令里有一个 cross-env,这个是指定当前环境变量的,需要安装一下:

npm  install  cross- env 

 

好了,现在在index.ts随便写一些ts代码测试一下:

 //   ./src/index.ts 
 
let str: string  = 'hello world' 

document.write(str) 

 

本地启动服务执行:

npm start

打包执行:

npm run build

 

结尾

此typescript运行环境只是简单的做到可执行ts文件,还有很多不足之处,在学习typescript的同时,可以再慢慢改善。

 

查看更多关于尝试自己搭一个简单的typescript运行环境的详细内容...

  阅读:66次