網站搜尋

單倉庫、TypeScript、傳遞性依賴以及套件管理器(pnpm)

所以我剛剛使用 rush (pnpm) 建立了一個 monorepo。

我有一個名為 web-commons 的函式庫,它有依賴項 fastify 和其他。

我有一個後端應用程式叫做 my-app。

我想在 my-app 中使用某些 fastify 的類型和模組,但我無法導入它。

我如何才能讓 web-commons 的依賴被傳遞性地包含在 my-app 的依賴中?

我知道這裡問題的一部分是因為 pnpm 使用符號連結,而我喜歡它,這樣更有效率。

但我不想在我在單一倉庫中的每個後端應用程式中都聲明相同的依賴,而且還會有更多……所以……有辦法嗎?

閱讀更多 →

使用 TypeScript 編寫的 pnpm 私有工作區套件:公開 src 還是 dist?

我有一個主要由 TypeScript 代碼組成的 monorepo,使用 pnpm 管理,我們在工作區內有很多套件之間的依賴(例如用於庫套件)。這些套件是這個工作區私有的,從不單獨發布。我們通常像這樣定義套件:

{ "name": "my-library", "license": "UNLICENSED", "private": true, "main": "dist/index.js", "types": "dist/index.d.ts", "files": ["dist"] }

這個問題在於當你修改庫中的某些東西時。IDE 不會看到這些更改,直到庫被重新構建,這有點令人惱火。因此,我正在考慮是否我們應該讓這個套件直接暴露 TypeScript 原始碼:

閱讀更多 →

docker - 將使用 pnpm workspaces 的 Typescript MERN monorepo Docker 化

我有一個專案,其資料夾結構如下,它是一個 TypeScript 單一倉庫(monorepo),包含兩個應用程式(client 和 api)以及一個共享庫(shared),後端和前端都依賴這個共享庫。我想要將這個專案 Docker 化。

my-monorepo/ |-- api/ | |-- src/ | |-- package.json | |-- tsconfig.json | | |-- client/ | |-- src/ | |-- package.json | |-- tsconfig.json | | |-- shared/ | |-- src/ | |-- package.json | |-- tsconfig.json | |-- package.json |-- pnpm-lock.yaml |-- pnpm-workspace.yaml |-- tsconfig.base.json

我試著在所有工作區放置 Dockerfile 並使用 docker-com

閱讀更多 →

material ui - 為什麼在使用 pnpm 時 TypeScript 會抱怨?

我正在嘗試從 yarn 遷移到 pnpm,但我遇到了一點問題,不太確定該如何處理。我還沒有嘗試調整提升(hoisting)相關的設定(如果可能,我希望不要這麼做),但我正在嘗試理解為什麼這會給我帶來問題。

我有一個小型的實用函數,在使用 yarn 時運作良好:

import { makeStyles } from '@material-ui/core'; export const useAlertConfigurationNameStyles = makeStyles((theme) => ({ name: { fo

閱讀更多 →

typescript - 使用 pnpm install 時如何自動觸發套件構建?

我們的專案使用 pnpm + workspace + TypeScript,遵循 monorepo 標準。克隆倉庫後,我們運行 pnpm install 來安裝依賴並將本地套件互相鏈接。但每個套件內的程式碼仍然保留在 .ts 檔案的原始碼模式。如何在第一次使用 pnpm install 時,自動觸發每個套件運行 pnpm run build,以便在套件內生成 dist 資料夾?

答案#1

在每個 package.json 中添加 prepare 腳本,例如 prepare: pnpm run build。它會在本地使用 pnpm install 並且不帶任何參數時觸發。

閱讀更多 →

node.js - 在 PNPM monorepo 中使用 Prisma Schema 與 NestJS 導致 ESM 問題

我建立了一個 PNPM monorepo,其中有兩個 NestJS 應用程式(apps/api 和 apps/backend;兩者完全相同)以及一個 Prisma 資料庫套件(packages/database)。當我使用 start:dev 執行 api 時,我收到以下錯誤:

(node:69498) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs exte

閱讀更多 →

使用 SSR + pnpm + preserveSymlinks 建置 Angular 時的 Typescript 編譯錯誤

我有一個 Angular 應用程式,一切編譯正常。這個應用程式唯一的怪癖是它在 angular.json 裡有 preserveSymlinks: true,並且在 package.json 的依賴中使用 link: 協議安裝了一個本地開發庫。

一切都正常運作,直到我按照文件中的指南添加 SSR 並執行後

ng add @angular/ssr

閱讀更多 →

適用於 pnpm monorepo 的可行設置,包含 TypeScript、Vite 與 Rollup

我使用 pnpm 工作區建立了一個單一倉庫,但在運行時遇到問題。它在前端使用 TypeScript 和 Vite,在後端微服務使用 Rollup。

這是設置:

package.json <== all dependencies reside here tsconfig.json pnpm-workspaces.yaml - commonlib/ package.json, tsconfig.json, rollup.config.js src/ ...interfaces, types etc--- - serverlib/ package.json, tsconfig.json, rollup.config.js src/ ...modules for common server/microservice funtionality--- - weblib/ package.json, tsconfig.json

閱讀更多 →

reactjs - 使用 PNPM 的 Vite 因對 `node_modules/.pnpm` 套件進行匯入分析而失敗

在 monorepo 中使用 PNPM 和 Vite 會導致以下問題,我完全不知道這種 [email protected]_@[email protected] 是什麼怪物,可能是某種 PNPM 的奇異現象。有沒有辦法禁用對這些庫的檢查?

9:02:46 PM [vite] Internal server error: Failed to parse source for import analysis because the content contains

閱讀更多 →

node.js - 為什麼在執行 "pnpm install ..." 命令後,PNPM 將我的套件標記為 "version: link:"?

我有一個套件,已經在 NPM 發佈。在這個套件中,我使用了相同的套件作為其中一個依賴,https://github.com/tal-rofe/cz-vinyl

所以如你所見,套件名稱是 cz-vinyl,最新版本是 2.5.0。最重要的是,我的 package.json 檔案包含:"cz-vinyl": "2.5.0",所以我將這個套件作為依賴使用。

在這個套件中,我在它的 package.json 檔案中匯出一些 TypeScript 類型:

"exports": { ".": { "types": "./dist/config.d.ts", "require&quo

閱讀更多 →