使用Bazel编译TypeScript
使用Bazel编译TypeScript准备请事先安装Nodejs,Yarn 1.x和Bazel 我使用的版本为: Nodejs: v14.17.3 Yarn: 1.22.5 Bzel: 4.1.0 创建一个Typescript项目选择指定目录,创建一个名为ts-bazel(其他名字也可以)的文件夹,使用终端进入该文件夹,然后执行npm init,一路选择默认。 安装Typescipt: 1yarn add typescipt -D 创建Typescript配置文件 1npx tsc --init 创建src文件夹,在该文件夹里新建index.ts文件,并写入一下内容: 12345function sayHello(name: string) { console.log(`helle ${name}`);}sayHello('daming'); 配置Bazel安装bazel等相关依赖: 1yarn add @bazel/bazelisk @bazel/ibazel @bazel/typescri...
Homebrew安装笔记
Homebrew安装笔记简单记录一下Homebrew安装 下载新建终端,以下命令安装: 1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 配置国内镜像替换 brew.git 1cd "$(brew --repo)" && git remote set-url origin https://mirrors.ustc.edu.cn/brew.git 替换 homebrew-core.git 1cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" && git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git Homebrew Bottles 配置镜像 以zsh为例 1echo 'export H...
TypeScript中可选链
TypeScript中可选链什么是可选链TypeScript 3.7中一个最引人关注的特性便是可选链(Optional Chaining)。 所谓可选链,就是当我们试图使用访问对象的字段或者方法时,如果对象为null或者undefined,TypeScript将会自动停止运行的代码,以防止空指针异常。 可选链的使用首先定义一个接口 A, 有一个字段b,b可能是字符串,也可能是null: 123interface A { b: string | null} 定义一个变量a: 123const a = { b: 'c'} 使用?.来访问字段: 1console.log(a?.b) 如果a为null或者undefined, 将输出undefined TypeScript做了什么可选链并不是ts的专利,在js就已经存在了,除了ie,其他现代浏览器最新版本都是支持了,但是一些老版本就不支持,因此ts没有使用js的语法,而是通过三元表达式? :转译。因此上面的代码将会转译成: 1console.log(a === ...
在windows上构建angular项目(上)
在windows上构建angular项目 (下)当完成bazel的安装之后,我们还需要安装nodejs就可以开始编译angular了。 Nodejs目前angular仅支持nodejs12和nodejs14这两个版本,推荐使用node14这个版本。 对于windows平台而言,nodejs可以直接从官网选择windows平台的二进制包下载,然后进行点击安装就可以了,但是我个人更推荐使用nvm-windows。 nvm-windowsnvm-windows是windows平台上常用的node版本管理工具,可以方便我们针对不同项目的要求切换不同的node版本。点击该链接,下载最新安装包,然后点击安装。 使用国内镜像由于国家特殊的网络政策,我们需要使用淘宝镜像: 12nvm node_mirror http://npm.taobao.org/mirrors/node/ // 注意结尾有斜杠nvm npm_mirror https://npm.taobao.org/mirrors/npm/ 安装nodejs14目前node14的最新版是14.17.0,现在我们可以使用nvm来进行安装:...
在windows上构建angular项目(上)
在windows上构建angular项目 (上)前端三大框架( angular, reac, vue )中,angular一直都是一个很独特的存在。首先,angular的概念很多,服务、依赖注入、模块,指令等,都是在前端圈不是很常用的,此外,angular使用了bazel作为构建工具,而react和vue都是使用了rollup,因此在本地编译构建angular将会远远超过react和vue,如果你是用的windows平台,那么一个个坑需要自己慢慢来填。。。 Bazel是什么?根据官网的定义,Bazel是类似于Make,Maven和Gradle的开源构建和测试工具。它使用人类可读的高级构建语言Starlark(一种基于python的方言)。 Bazel支持多种语言的项目,并为多种平台构建输出。 从我个人角度来看,bazel是一个强大且复杂的构建系统,通过build rule的概念,支持多种语言、不同平台,支持构建C/C++,Java,Android,IOS,Golang,Nodejs,Docker项目 安装Bazel官方支持Windows,macOS, Ubuntu L...
Angular和React构建体积简单对比
Angular和React构建体积简单对比前言Angular是我主要使用的前端框架, 和React是我最近正在学习的前端框架。今天我想对比一下在各自默认的情况下,两者打包体积的对比。 Angular创建我们使用Angular CLI: 11.1.2简单创建一个angular项目: 12345ng new daming-angular-app# ? Do you want to enforce stricter type checking and stricter bundle budgets in the workspace? Y# ? Would you like to add Angular routing? Y# ? Which stylesheet format would you like to use? CSS 然后终端会提示我们输入一些必要的参数。对于Y或N的选择,我们统一选择Y,对拥有多个选择项的,我们统一选择第一个值: 123# ? Do you want to enforce stricter type checking and stricter bundl...
Docker Desktop自带k8s安装笔记
Docker Desktop自带k8s安装笔记安装一个k8s还是一个比较复杂的事情,但是Docker Desktop已经自带了一个简易版的k8s,可以基本满足正常的学习使用 安装Docker对于Mac用户,请点击Docker Desktop对于Windows10用户,请点击Docker Desktop 配置docker的国内镜像国内的网络下载可能比较慢,建议使用下面的镜像 1234567891011121314151617{ "registry-mirrors": [ "https://dockerproxy.com", "https://dockerhub.azk8s.cn", "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn", "https://mirror.baidubce.com", "http://hub...
Android Studio安装笔记
Android Studio安装笔记简单记录一下Android Studio安装 下载从官网安装Android Studio, 然后点击安装。 Android SDK使用http://ping.chinaz.com获取dl.google.com的大陆响应时间最短的IP地址。 以我为例:180.163.151.161 将其写入hosts文件(C:\WINDOWS\System32\drivers\etc\hosts) 1180.163.151.161 dl.google.com 参考资料在Android Studio中下载Android SDK的两种方式(Android Studio3.0、windows
在Ubuntu 18.04.5 LTS上安装minkube
在Ubuntu 18.04.5 LTS上安装minkube要求 2 CPUs or more 2GB内存 20G空间 无线网络连接 容器或者虚拟机, 比如: Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMWare 下载1curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 启动1sudo minikube start --registry-mirror=https://registry.docker-cn.com --vm-driver=none --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers 注意点none driver integration tests: k8s 1.18 needs conntrack installed解决方案 12sudo apt-get insta...
