C蛮的全栈之路-node篇(一) 环境布置
目录
C蛮的全栈之路-序章 技术栈选择与全栈工程师
C蛮的全栈之路-node篇(一) 环境布置
C蛮的全栈之路-node篇(二) 实战一:自动发博客
---------------- 我是分割线 --------------
武器买到了,第一步就是拿在手里掂量一下。
node.js 可以去 https://nodejs.org/ 下载,或者先安装npm(npm nrm nvm人称3m),然后用npm安装node。
IDE可以选择WebStorm。去 http://www.jetbrains.com/webstorm/ 下载。
IDE可以选择VSCode。去 https://code.visualstudio.com/download 下载。(个人推荐)
---------------- TypeScript or not--------------
为什么提到了TypeScript?
前面提到过工程化。
当你的js文件数增加,行数也在增加,参与人数也在增加时,工程渐渐变得不可维护。
所谓“动态类型一时爽,代码重构火葬场”,古人诚不我欺。
在其他技术栈的同学嘲笑js系不能做大工程时,我们要怎么办呢?
一种是守着ES的生态,配上Babel, ESLint, Flow这一类东西,标准。
另一种就是直接上车用TypeScript,配上TSLint等一系列东西,并且VSCode也配合的很优雅。有轻度的侵入性。
当你在维护一个已有项目时,Flow系的改造是平滑的。当做一个新项目时,两种方案都可以考量。最终这个选择取决于团队的构成。
---------------- TypeScript的场景--------------
npm install typescript -g
npm install tsd -g
npm install tslint -g
tsd install node
---------------- 非TypeScript的场景------------
npm i eslint -g
npm i babel -g
---------------- WebStorm --------------
WebStorm安装后,File->Setting->Node.js and NPM 里,把Code Assistance给Enable掉,这样就有智能感知了。
此IDE可以直接创建Express工程。node工程有智能感知,也能直接调试,算是比较方便的。
细节不再赘述。
---------------- VSCode --------------
在工程目录 tsc --init
生成了一个tsconfig.json文件:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": false,
"outDir": "built",
"rootDir": ".",
"sourceMap": true,
"watch" : true
},
"exclude": [
"node_modules"
]
}
加入watch可以帮助你CompileOnSave。
然后在VSCode里Open这个工程目录。按Ctrl+Shift+B,选Configure Task Runner。
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"showOutput": "silent",
"args": ["-p", "."],
"problemMatcher": "$tsc"
}
这样 ts->js 的配置就ok了。
tslint --init 来生成 tslint.json
"quotemark": [
true,
"single"
],
别的都不动,把字符串改成默认单引号。这是Airbnb语法推荐的。
Files->Preferences->User Settings
{
"editor.tabSize": 2,
}
把tab改成2个空格。
---------------- 初战 --------------
把玩一下后,就赶紧找个敌人试试手吧。
一般来说,大家的第一个敌人不是地精就是狗头人……
----- 战斗前查怪物卡,是每一个立志砍翻一切敌人的家伙都会做的事情 -----
地精, 一级武者 小型类人生物 (地精类)
生命骰: 1d8+ ( hp)
先攻: +
速度: 30英尺 (6格)
防御等级: (+1体形, + 敏捷, + 皮甲, + 轻型盾牌),接触AC , 措手不及
基础攻击/擒抱: +/–
攻击: 钉头锤+ 近战 (1d6) 或标枪 +3远程 (1d4)
全回合攻击: 钉头锤+ 近战 (1d6) 或标枪 +3远程 (1d4)
占据/触及: 5英尺/ 英尺
特殊攻击: —
特殊能力: 黑暗视力60英尺
豁免: 强韧 +, 反射 +, 意志 –
属性: 力量11, 敏捷 , 体质 , 智力 , 感知 , 魅力
技能: 躲藏 +, 聍听+, 潜行+, 骑乘 +*,侦察 +
专长: 警觉
环境: 温带平原
组织: 小群(–), 一帮 (– 个个体加上相等数量的非战斗人员,加上每20个成年个体一个3级士官和一个4到6级领袖),战团 (– 个带着座狼), 或部落 (–400个个体加上相等数量的非战斗人员,加上每20个成年个体一个3级士官,1或2个4或5级副官,一个6~8级的领袖,~24只座狼加上2~4只凶暴狼)
挑战等级: /
宝藏: 标准
阵营: 通常是中立邪恶
进化: 根据人物职业 战斗:
地精是那么的弱小,以至于只能在被痛扁时发出"World! World!"的悲鸣。
地精
----------------------------------------------
每一个新武器上都染满了这种小家伙的血迹。
这次我们也毫不例外的选择它。
index.ts里如下砍出一记。
import * as http from 'http';
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('Hello Goblin');
}).listen(8080, '127.0.0.1');
F5后出现launch.json。把"program"调整成index.ts。把"sourceMaps"调整成true。
Run起来看看

下一个断点看看。

C蛮看着一个照面就倒在血泊中的Goblin满意的点了点头。
C蛮的全栈之路-node篇(一) 环境布置的更多相关文章
- C蛮的全栈之路-node篇(二) 实战一:自动发博客
目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...
- C蛮的全栈之路-序章 技术栈选择与全栈工程师
目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 博主背景 985院校毕业,至今十年C++开发工作经验, ...
- Python全栈之路-----基础篇
Python诞生 Python是著名的”龟叔“Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python语法很多来自C,但又受到 ...
- Python全栈之路目录结构
基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...
- 绝版Node--Sequlize搭建服务(Node全栈之路)
绝版Node--Sequlize搭建服务(Node全栈之路) 参考资料:https://itbilu.com/nodejs/npm/VkYIaRPz-.html 准备环境:Mysql,Node 前沿: ...
- 绝版Node--Sequlize搭建服务(Node全栈之路 二)
在Node全栈之路(一),也就是上篇文章中,我们讲到了sequlize的基本增删该查,这篇文章,我们在上篇文章的基础上继续探讨,讲一下关于sequlize创建的表之间的对应关系 参考资料:https: ...
- Python全栈之路----目录
Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...
- Python全栈之路----常用模块----hashlib加密模块
加密算法介绍 HASH Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...
- python 全栈之路
目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...
随机推荐
- spin_count
oracle的一个隐藏参数_spin_count当中记录了这个值,如果超过这个参数就那这个进程就释放cpu进入睡眠状态.(然后这里有了争议,传统的说法是在睡眠了一段时间以后会醒来,但是也有人说是进入了 ...
- bzoj3166
首先不难想到穷举次大数然后我们只要找到满足这个数是次大数的最大区间即可显然答案只可能是这两种[LL[i]+1,R[i]-1]和[L[i]+1,RR[i]-1]L[i]表示这个数ai左侧第一个比它大的数 ...
- 汇编学习笔记(11)int指令和端口
格式 int指令也是一种内中断指令,int指令的格式为int n,n是中断类型码.也就是说,使用int指令可以调用任意的中断例程,例如我们可以显示的调用0号中断例程,还记得在汇编学习笔记(10)中我们 ...
- C++之友元函数
1.为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率 具体来说:为了使其他类的成员函数直接访问该类的私有变量 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同 ...
- poj 1740 A New Stone Game(博弈)
A New Stone Game Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5338 Accepted: 2926 ...
- Validate XML using a XSD (XML Schema)
Consider this XML file howto.xml : <?xml version="1.0" encoding="ISO-8859-1"? ...
- Grandpa's Estate - POJ 1228(稳定凸包)
刚开始看这个题目不知道是什么东东,后面看了大神的题解才知道是稳定凸包问题,什么是稳定凸包呢?所谓稳定就是判断能不能在原有凸包上加点,得到一个更大的凸包,并且这个凸包包含原有凸包上的所有点.知道了这个东 ...
- hdoj 1276 士兵队列训练问题【模拟】
士兵队列训练问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- .\Obj\main.axf: Error: L6406E: No space in execution regions with .ANY selector matching sin_i.o(.co
这个问题原因是 芯片的 空间不足 解决方法是 在KEIL 的DEVICE中选择 更大的空间的芯片型号
- Javac编译和JIT编译
编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行: 其中绿色的模块可以选择性实现.很容易看出,上图中 ...