tsconfig.json
在其他深层次目录引用utils或者config下的文件时,总是要写一长串的
'../../../../'
,还需要数数。这显然是不能接受的。用过
webpack
开发的小伙伴们,想想别名功能,
typescript
这种成熟框架不可能没有。于是百度一波,得到如下配置:
"baseUrl"
:
"./"
,
"paths"
:
{
"@utils/*"
:
[
"src/utils/*"
"@config/*"
:
[
"src/config/*"
tsconfig
路径
使用
它来加载其位置在
tsconfig
.
json
的
path
s部分中指定的模块。 支持在运行时和通过API加载。
默认情况下,
Typescript
模仿模块的
Node.js
运行时解析策略。 但是,它还允许
使用
,该允许指定任意模块路径(不以“ /”或“。”开头),并映射到文件系统中的物理路径。
tsconfig
编译器可以从
tsconfig
解析这些路径,因此可以正常编译。 但是,如果您随后尝试
使用
节点(或ts-node)执行已编译的文件,则它将仅在node_modules文件夹中一直查找到文件系统的根目录,因此无法在
tsconfig
找到由
path
s指定的模块。
如果需要此程序
将其添加到package.
json
中的构建脚本中
" scripts " : {
" build " : " tsc --project
tsconfig
.
json
&& tsc
path
s -p
tsconfig
.
json
-s ./src -o ./out " ,
-p-项目
项目配置文件(
tsconfig
.
json
)
-s --src
源代码根目录
转译代码的输出目录(tsc --outDir)
您需要提供-s(--sr
这是因为ts-node并不会去解析
tsconfig
.
json
,这是就需要额外下载一个包来
解决
这个
问题
。我们写纯ts项目也会配置路径
别名
,但是发现
使用
ts-node运行时,路径
别名
没起作用。最重要的一步的来了,把package,
json
的运行命令改了。很多项目都会配置路径
别名
来简化导入的路径长度。(其实是在哪里建,叫什么名字都行)在运行命令中加上require 参数。
# Will break on the absolute
path
that is instead of left the same: `/Users/mprinc/data/development/colabo-zontik/colabo-lab/
typescript
/
tsconfig
-
path
s/
tsconfig
-
path
s-absolute/a`
# expanded to `/Users/mprinc/data/development/colabo-zontik/colabo-lab/
typescript
/
tsconfig
-
path
s/
tsconfig
-
path
s-absolute`
# When fixed `return
path
.join(absoluteBaseUrl,
path
ToRes
为什么要
使用
TypeScript
?
为了减少代码编写过程中出现的错误,以及更好的维护你的项目,本文将手把手教你配置一个简单的开发环境来编写
Node.js
的应用程序,创建这样的一个开发环境有很多方式,这只是其中一种,希望对你有所帮助!
手把手教你
使用
TypeScript
开发
Node.js
应用
首先配置package.
json
因为要在项目中
使用
Webpack,所以首先得创建一个package.
json
文件,我们可以
使用
npm init来生成
"name": "start",
"version": "1.0.0",
"description": "",
"main": "inde
Angular 项目目录中的
TSConfig
文件表明该目录是
TypeScript
或 JavaScript 项目的根目录。
TSConfig
文件可以是
tsconfig
.
json
或 jsconfig.
json
,两者都有相同的配置变量集。我们直接来到
path
s 字段:这是一个对象,定义了一系列将导入(import)重新映射到相对于 baseUrl 的查找位置的条目。所谓 baseUrl,允许开发人员设置基本目录以解析非绝对模块名称。我们可以定义一个根文件夹,然后可以在其中进行绝对文件解析。
基于
typescript
的项目的根目录下都会有一个文件(`
tsconfig
.
json
`), 这个文件主要用来控制
typescript
编译器(tsc,
typescript
compiler)的一些行为, 比如指定哪些文件需要让tsc来编译, 哪些文件不想让tsc进行编译之类的。通常会配合eslint配置`@
typescript
-eslint`做代码检测。
我的项目
使用
的是roadhog编译,根目录添加webpack配置webpack.config.js,在配置文件中自动读取了
tsconfig
中
path
的属性来给webpack设置
别名
,避免多位置配置alias。发现我的vscode编辑器已经能识别这个路径了,当我按下ctrl点击路径的时候,也自动跳转到了a.ts文件,再运行npm run start报错如下。原因:
typescript
根本不会对
别名
进行处理,只能借助第三方编译工具,例如babel,webpack。
tsconfig
.
json
配置说明
初始化一个
tsconfig
.
json
配置文件tsc --init
默认的配置如下,只配置了四个关键参数,target/module/strict、esModuleInterop,其他的都注释掉了。
target默认是es5,如果你的代码中有一些es6的语法,如:Object.assign,编辑器可能会报错,所有可以修改为es6(es2015).
module默...