真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Angular2.x/Typescript模塊引入解析

首先,模塊引入的時(shí)候有兩種方式:
1、相對導(dǎo)入:

公司主營業(yè)務(wù):網(wǎng)站建設(shè)、做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出連平免費(fèi)做網(wǎng)站回饋大家。

import Entry from "./components/Entry";
import { DefaultHeaders } from "../constants/http";
import "/mod";

相對導(dǎo)入在解析時(shí)是相對于導(dǎo)入它的文件,并且不能解析為一個(gè)外部模塊聲明,你應(yīng)該為你自己寫的模塊使用相對導(dǎo)入,這樣能確保它們在運(yùn)行時(shí)的相對位置。

2、非相對導(dǎo)入:

import * as $ from "jQuery";
import { Component } from "@angular/core";

非相對模塊的導(dǎo)入可以相對于baseUrl(在tsconfig.json中配置,詳見https://www.tslang.cn/docs/handbook/module-resolution.html )或通過下文會(huì)講到的路徑映射來進(jìn)行解析。 它們還可以被解析成 外部模塊聲, 使用非相對路徑來導(dǎo)入你的外部依賴或者你項(xiàng)目的公共庫(Angular8 后創(chuàng)建項(xiàng)目默認(rèn)就是一個(gè)多個(gè)項(xiàng)目合集的workspace,項(xiàng)目間能更友好的訪問)。

當(dāng)我們import后,Angualr2.x/Typescript是怎么來解析找到我們的模塊的呢?

比如有一個(gè)相對導(dǎo)入,有一個(gè)導(dǎo)入語句import { b } from "./moduleB"在/root/src/moduleA.ts里,會(huì)以下面的流程來定位"./moduleB":

/root/src/moduleB.ts
/root/src/moduleB.tsx
/root/src/moduleB.d.ts
/root/src/moduleB/package.json (如果指定了"types"屬性)
/root/src/moduleB/index.ts
/root/src/moduleB/index.tsx
/root/src/moduleB/index.d.ts

我們可以看到,首先會(huì)在同級(jí)別目錄下找moduleB-》moduleB的聲明文件(.d.ts),假設(shè)都沒有找到那么就會(huì)找同級(jí)別目錄下的moduleB目錄,其下的packages.json-》index -》index聲明文件, 當(dāng)然這些文件中要有關(guān)于b模塊的export語句

另外一個(gè)非相對導(dǎo)入,import { b } from "moduleB"在/root/src/moduleA.ts里,會(huì)以下面的流程來定位"./moduleB":

/root/src/node_modules/moduleB.ts
/root/src/node_modules/moduleB.tsx
/root/src/node_modules/moduleB.d.ts
/root/src/node_modules/moduleB/package.json (如果指定了"types"屬性)
/root/src/node_modules/moduleB/index.ts
/root/src/node_modules/moduleB/index.tsx
/root/src/node_modules/moduleB/index.d.ts

/root/node_modules/moduleB.ts
/root/node_modules/moduleB.tsx
/root/node_modules/moduleB.d.ts
/root/node_modules/moduleB/package.json (如果指定了"types"屬性)
/root/node_modules/moduleB/index.ts
/root/node_modules/moduleB/index.tsx
/root/node_modules/moduleB/index.d.ts

/node_modules/moduleB.ts
/node_modules/moduleB.tsx
/node_modules/moduleB.d.ts
/node_modules/moduleB/package.json (如果指定了"types"屬性)
/node_modules/moduleB/index.ts
/node_modules/moduleB/index.tsx
/node_modules/moduleB/index.d.ts

這里請注意會(huì)逐級(jí)網(wǎng)上找,并且都是在node_modules里面,這個(gè)目錄是node npm的包管理目錄。

下面我來看一個(gè)具體的例子來實(shí)現(xiàn)不同方式的公共庫導(dǎo)入:
我們有一個(gè)Hello項(xiàng)目,下面有一個(gè)src,下面有一個(gè)services,然后下面有一個(gè)Hello.ts;
然后有一個(gè)公共的庫Common和Hello目錄同級(jí),下面有一個(gè)services,然后下面有一個(gè)Common.ts(Common中export了Common和Common1兩個(gè)模塊)
我們在Hello.ts需要導(dǎo)入Common庫有以下幾種方式

最原始的方式:
import { Common, Common1 } from '../../../Common/services/Common';
如果在Common下定義了一個(gè)index.ts里面有 export * from './services/Common'; 則可以用下面語句
import { Common, Common1 } from '../../../Common';

但是這種相對導(dǎo)入的庫文件的方式有一個(gè)問題,如果這個(gè)Common文件夾位置移動(dòng),那么import過它的都需要進(jìn)行相應(yīng)更改,因?yàn)橄鄬σ檬歉鶕?jù)當(dāng)前引用文件的位置來的,這樣我們來考慮非相對引入,如下:
import {Common, Common1} from 'common/services/Common';
import {Common, Common1} from 'common';
采用這種方式需要在tsconfig.ts中配置paths目錄,讓程序知道common到哪里去尋找

compilerOptions: {
        ...
    "baseUrl": "./", //配置baseUrl為tsconfig.ts的位置
        "paths": {     
      "common": [
        "../common"
      ],
      "common/*": [
        "../common/*" // 此處映射是相對于"baseUrl"
      ]
    }
}

新聞名稱:Angular2.x/Typescript模塊引入解析
網(wǎng)址分享:http://weahome.cn/article/iehshi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部