日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

npm run 脚本背后的事情

發(fā)布時(shí)間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 npm run 脚本背后的事情 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

npm run build:mylib

npm run 執(zhí)行的目標(biāo) build:mylib, 定義在 package.json 里:

實(shí)際執(zhí)行的命令是:yarn --cwd feature-libs/my-lib && ng build my-lib --configuration production

ng build:把 Angular 應(yīng)用編譯到給定輸出路徑下名為 dist/ 的輸出目錄中。此命令必須在工作空間目錄下執(zhí)行。

當(dāng)用于構(gòu)建庫時(shí),將調(diào)用其他構(gòu)建器,并且僅應(yīng)用 ts-config、configuration 和 watch 選項(xiàng)。

使用 CLI 創(chuàng)建項(xiàng)目時(shí),默認(rèn)情況下會(huì)創(chuàng)建 “production” 配置,并且可以通過指定 --configuration=“production” 或 --prod 選項(xiàng)來使用該配置。

如果遇到錯(cuò)誤消息:

[error] Error: Unable to write a reference to UrlPipe in C:/Code/SPA/mySPA/spartacus/projects/core/src/routing/configurable-routes/url-translation/url.pipe.ts from C:/Code/SPA/mySPA/spartacus/projects/core/src/routing/configurable-routes/url-translation/url.module.ts
at ReferenceEmitter.emit (C:\Code\SPA\mySPA\spartacus\node_modules@angular\compiler-cli\src\ngtsc\imports\src\emitter.js:85:19)

my-lib 為什么和 core 文件夾下的 url.pipe.ts 有關(guān)聯(lián)?

創(chuàng)建一個(gè)空的 test-lib, 然后 ng build 之,看有無同樣的錯(cuò)誤。

沒有任何問題。

我發(fā)現(xiàn)只要當(dāng)我 import ICON_TYPE 之后,就會(huì)出現(xiàn)這個(gè)錯(cuò)誤:

當(dāng)我注釋掉上圖第2行代碼之后,build 錯(cuò)誤消失:

查看 Spartacus 其他 library 的 ng-package.json 文件,其 lib 區(qū)域有一個(gè)指向 @spartacus/storefront 的引用:

在新建的 test-lib service 里添加 ICON_TYPE 的引用:

也立即出錯(cuò)了:

經(jīng)過研究發(fā)現(xiàn),在 Angular 庫工程文件夾下面的 tsconfig.lib.json 文件內(nèi),添加對(duì) @Spartacus/core 和 @Spartacus/storefront 的引用即可解決問題:

成功 build 通過:

很多 JavaScript 庫,比如 jQuery、Jasmine 測(cè)試庫和 Angular,會(huì)通過新的特性和語法來擴(kuò)展 JavaScript 環(huán)境。 而 TypeScript 編譯器并不能原生的識(shí)別它們。 當(dāng)編譯器不能識(shí)別時(shí),它就會(huì)拋出一個(gè)錯(cuò)誤。

可以使用TypeScript 類型定義文件 —— .d.ts 文件 —— 來告訴編譯器你要加載的庫的類型定義。
TypeScript 敏感的編輯器借助這些定義文件來顯示這些庫中各個(gè)特性的類型定義。
很多庫在自己的 npm 包中都包含了它們的類型定義文件,TypeScript 編譯器和編輯器都能找到它們。Angular 庫也是這樣的。 任何 Angular 應(yīng)用程序的 node_modules/@angular/core/ 目錄下,都包含幾個(gè) d.ts 文件,它們描述了 Angular 的各個(gè)部分。

這些 d.ts 文件如下圖所示:

更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:

總結(jié)

以上是生活随笔為你收集整理的npm run 脚本背后的事情的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。