博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
002.typescript初体验( 一 )
阅读量:6705 次
发布时间:2019-06-25

本文共 1970 字,大约阅读时间需要 6 分钟。

初衷

十多年前,Java的繁琐让很多人仇恨类型系统, 他们改用Python、Ruby等动态类型语言, 这使我们能够快速而松散地完成工作。 经过大约十年的热血编程,我们最终发现,动态语言编写的巨大单体项目是非常脆弱的。

好吧不知道多少次被小伙伴安利过typeScript了,一直感觉这无非是ESMAscript的超集而已,还不着急,可是当项目线逐渐膨胀,我感觉到了脆弱无力。主要无力是两点,一、设计模型的脆弱。二、参数类型的混乱。设计模型是内功需要长时间的修为,还好参数类型的混乱我能用过工具方法阻止。

安装简单的学习环境

首先我需要安装最简单的测试环境,让我可以测试所有typeScript的所有语法。

目录结构

typescript-demo|----- config             // 脚本文件        |----- watch.js   // 监听变化执行tsc命令|----- src                // 产出目录        |----- js         // build的js文件集合        |----- index.html // 主index.html文件|----- ts                 // ts文件集合|----- package.json|----- tsconfig.json复制代码

涉及的npm包

"devDependencies": {  "chokidar": "^3.0.0",  "concurrently": "^4.1.0",  "glob": "^7.1.4",  "live-server": "^1.2.1",  "shelljs": "^0.8.3"}复制代码

涉及的指令

"scripts": {  "start": "concurrently \"npm run server\" \"npm run watch\"",  "server": "live-server ./src --port=8080",  "ts": "tsc",  "watch": "node ./config/watch.js"}复制代码

为什么要这样折腾webpack不是就可以用吗?

首先,我需要的是基本0配置的环境,我不想过多折腾环境,我要是的学习。如果我用webpack的话,我可能要配置各种devServer、loader、entry、output等等。可是我的需求只是,开个服务器,监听文件变化,build ts,然后就木了,所以我选择了5个包。

  • chokidar 监听文件变化
  • concurrently 同时执行多个命令
  • live-server 简易服务器
  • shelljs 执行shell命令

好吧,我的需求是不是就达到了。然后我只要组合一下就行了。

// watch.js 文件const shell = require('shelljs');const chokidar = require('chokidar');// 监听文件const watcher = chokidar.watch('./ts',{  persistent: true,});// 执行命令const command = ()=> shell.exec('npm run ts');// 监听回调用watcher  .on('add', () => command())  .on('change', () => command())  .on('unlink', () => command());复制代码

组合package script

我写了4个script,分别是start、watch、ts、server

  • start 组合watch和server
  • watch 监听文件变化
  • ts build typeScript
  • server 启动服务器

当我需要学习的时候,我只要执行一下start就可以了。对了我没有加入自动刷新,为啥呢?因为我觉得学习的话,自动刷新反而会让我忽略一些细节。还有一个问题就是,这里会全部build所有ts文件,这我倒是感觉没啥问题,毕竟小demo能有几行代码,性能问题就不想了。

提醒

  • 记得全局安装一下typescript哟
npm install -g typescript复制代码
  • 我所用到的npm版本以及node版本
"node": ">=8.9.1","npm": ">=6.1.0"复制代码

结尾

好吧,我用了大概10多分钟,搭建起了这一套简单易用可扩展的测试环境,并且写了两个demo,然后我就可以愉快的学习了。有时候吧,什么需求选择什么构架,慢慢迭代,不用操之过急。

献上github欢迎clone:

转载地址:http://yddlo.baihongyu.com/

你可能感兴趣的文章
svn权限设置
查看>>
CentOS6.9 安装OpenResty
查看>>
JAVA nio 2 和 Path 类简介
查看>>
MVC验证11-对复杂类型使用jQuery异步验证
查看>>
C++static关键字用法
查看>>
excel在msdn上的说明文档
查看>>
指尖下的js ——多触式web前端开发之一:对于Touch的处理(转)
查看>>
SQLExecption:Operation not allowed after ResultSet closed解决办法
查看>>
visual studio 2013使用技巧
查看>>
requirejs-define jquery 快速初学实例(一)
查看>>
JSP网站开发基础总结《九》
查看>>
Sublime Text 相关
查看>>
深入理解css优先级
查看>>
Android MediaPlayer状态机
查看>>
Material Design Animation
查看>>
ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开
查看>>
(C语言)memcpy函数原型的实现
查看>>
Theano2.1.1-基础知识之准备工作
查看>>
FreeBSd ports 安装软件
查看>>
DevExpress.Build
查看>>