在现代Web开发中,TypeScript因其强类型特性和对ES6+的支持而越来越受欢迎。本文将介绍如何在Atom编辑器中配置TypeScript开发环境,以便更高效地进行项目开发。
在开始之前,请确保已经安装了以下软件:
接下来,将从IDE的配置和插件开始。
市面上有许多优秀的IDE可供选择,经过一番研究,选择了Atom编辑器,因为它拥有大量的插件,并且是免费的。
Atom编辑器提供了丰富的插件,可以根据需要搜索并安装。本文将重点介绍几个对TypeScript开发有帮助的插件。
这个插件对于TypeScript开发来说几乎是必不可少的。它提供了编译、文件整理、智能提示等功能。如果打算使用TypeScript,那么这个插件是必须要安装的。
这个插件允许隐藏树视图中不必要的文件。当在TypeScript中工作并将其转译为JavaScript时,每个文件至少会产生两个文件:.ts文件和.js文件(还可能有映射文件和.d.ts文件)。树视图中会充满实际上不使用的文件,这会使得寻找所需文件变得非常困难。tree-ignore插件可以帮助隐藏这些不需要的文件。稍后将展示如何配置它。
有许多教程介绍了如何创建package.json文件,可以通过搜索找到它们。这里将展示一个基本的配置示例。
打开Git Bash,导航到项目文件夹,然后运行npm init命令。设置过程会引导完成所需的最低配置。
这个文件将包含atom-typescript所需的所有配置。在Atom中打开项目文件夹,按下Ctrl/Command + Shift + P(Windows/Mac),然后输入"tsconfig"。应该能看到命令"Typescript: Create Tsconfig.json Project file"。按下回车键(如果没有反应,请向项目中添加一个空的something.ts文件,然后再试一次,创建tsconfig.json后,可以删除该文件)。
打开tsconfig.json文件,可以看到它的结构非常直观。有许多可用的配置可以在atom-typescript的GitHub页面上找到。以下是经过几个项目后决定使用的配置文件:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"isolatedModules": false,
"jsx": "react",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"preserveConstEnums": true,
"suppressImplicitAnyIndexErrors": true,
"allowUnreachableCode": false
},
"filesGlob": [
"**/*.ts",
"**/*.tsx",
"!node_modules/**"
],
"exclude": [
"src/**/*.d.ts",
"index.d.ts",
"node_modules",
"typings/browser",
"typings/browser.d.ts"
],
"compileOnSave": true,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false,
"formatOnSave": true
},
"formatCodeOptions": {
"indentSize": 2,
"tabSize": 2,
"insertSpaceAfterCommaDelimiter": true,
"insertSpaceAfterSemicolonInForStatements": true,
"insertSpaceBeforeAndAfterBinaryOperators": true,
"insertSpaceAfterKeywordsInControlFlowStatements": true,
"insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
"placeOpenBraceOnNewLineForFunctions": false,
"placeOpenBraceOnNewLineForControlBlocks": false
}
}
这里有几点需要注意:
正如之前提到的,tree-ignore插件允许隐藏树视图中不需要的文件。要配置要忽略的文件,只需在项目文件夹中添加一个.atomignore文件,并写入想要忽略的文件模式,可以随时修改文件,并添加/删除任何想要的内容。
以下是通常在文件中放置的内容示例:
.git
index.js
index.d.ts
src/*/*/*.js
src/*/*/*.d.ts
src/*/*.js
src/*/*.d.ts
src/*.js
src/*.d.ts
如所见,将所有源文件放在src目录中。遇到的一个问题是,插件不允许配置深层文件夹模式,这样就可以为src目录看到多个深度的模式。
如果打算在npm上发布项目,应该考虑添加.npmignore文件,以使包尽可能小,不包含任何不需要的文件。
以下是通常在文件中添加的内容示例:
.atomignore
node_modules
tests
typings
tsconfig.json
typings.json
*.ts
!*.d.ts
.npmignore
*.test.js
*.test.d.ts
如果使用GIT,并且出于某种原因不想提交某些文件,可以使用.gitignore文件来忽略它们。通常不添加它,因为希望保存所有的项目(即使是node_modules)。有许多文章讨论是否应该这样做,可以做任何想做的。
添加一个空的index.ts文件并按F6编译。
添加一个src文件夹或任何习惯的名称,这是放置所有源文件的地方。
过去,习惯创建一个不同的文件夹来包含所有的测试文件,但后来读到一篇文章,建议将测试文件放在源文件附近,这样可以更容易地找到它们,并节省了对源文件和测试文件夹结构的双重管理,但同样,可以做任何喜欢的事情。
例如,如果添加了一个文件: src\someClass.ts ,那么该文件的测试文件将是: src\someClass.test.ts 。可以看到,在.npmignore中,忽略了所有匹配"*.test.ts"模式的文件。
使用mocha + sinon + chai编写测试,所以将展示这些配置,如果使用其他测试框架,可以将在这里展示的原则应用到框架上。
将看到typings的ambient安装,因为当写这篇文章时,d.ts文件在Typings仓库中不可用,只有在DefinitelyTyped中。
npm install -g mocha
(对于typings 0.x版本)
typings install dt~mocha --global --save-dev
将其全局安装,以便于访问。可以在官方Mocka页面上找到文档。
"scripts": {
"test": "mocha -c -b src/**/*.test.js"
}
脚本运行src文件夹内的所有测试文件。如果在"test"文件夹中管理测试文件,只需将src更改为test。
-c代表color,这样测试输出将更易于阅读,-b代表在第一个失败的测试中断,因为想快速失败并修复失败的测试,然后继续下一个。可以根据自己的需要添加/移除标志,具体可以参考文档。
要运行测试,可以在项目文件夹中打开git bash并运行以下命令:
npm test
npm install sinon --save-dev
(对于typings 0.x版本)
typings install sinon --save-dev
可以在官方Sinon页面上找到文档。
npm install chai --save-dev
(对于typings 0.x版本)
typings install chai --save-dev
可以在官方Chai页面上找到文档。
运行所有脚本后,将注意到发生了几件事情:
现在所需要做的就是编写代码。
当需要一个d.ts文件时,只需在Typings仓库中搜索:
typings search something
如果在那里找不到,就在ambient仓库中搜索:
typings search something --abmient
找到后,只需将search关键字替换为install关键字即可安装。
要编译TypeScript文件,请使用F6。