簡體   English   中英

Nestjs:Repl 與 monorepo 模式

[英]Nestjs: Repl with monorepo mode

我有一個使用monorepo 模式的 Nest 應用程序。 我想利用 nest 9.0+ 中發布的新repl功能。

我的目錄結構如下所示:

應用/

--inventory-ops/src/app.module

--ticket-office/src/app.module

我已按照創建 repl.ts 的文檔中的說明進行操作,但是當我運行 repl 命令時:

npm run start -- --entryFile repl

我收到此錯誤 output:

Error: Cannot find module '/dist/apps/ticket-office/repl'

查看我的dist文件夾,唯一的構建目標是main.js ,這可以解釋它無法找到 repl 模塊。 我是否需要更新我的 webpack 配置中的某些內容以確保也構建了repl.ts 任何幫助,將不勝感激。

嘗試運行這個:

nest start <your-app> --config nest-cli.json --debug --watch -- --entryFile repl

我遇到了同樣的問題,這對我有用。

我真的不知道為什么 NestJS 僅在明確提供 cli 配置時才考慮構建 repl 文件。 這可能是 CLI 的錯誤。

我設法通過在nest-cli.json添加一個新項目來解決這個問題,例如:

{
  "$schema": "https://json.schemastore.org/nest-cli",
  "collection": "@nestjs/schematics",
  "sourceRoot": "apps/gateway/src",
  "monorepo": true,
  "root": "apps/gateway",
  "compilerOptions": {
    "webpack": true,
    "tsConfigPath": "apps/gateway/tsconfig.app.json"
  },
  "projects": {
    "gateway": {
      "type": "application",
      "root": "apps/gateway",
      "entryFile": "main",
      "sourceRoot": "apps/gateway/src",
      "compilerOptions": {
        "tsConfigPath": "apps/gateway/tsconfig.app.json"
      }
    },
    "ticket-office": {
      "type": "application",
      "root": "apps/ticket-office",
      "entryFile": "main",
      "sourceRoot": "apps/ticket-office/src",
      "compilerOptions": {
        "tsConfigPath": "apps/ticket-office/tsconfig.app.json"
      }
    },
    "ticket-office:repl": { // <<--- HERE
      "type": "application",
      "root": "apps/ticket-office",
      "entryFile": "repl", // <<-- HERE
      "sourceRoot": "apps/ticket-office/src",
      "compilerOptions": {
        "tsConfigPath": "apps/ticket-office/tsconfig.app.json"
      }
    },
  }
}

然后你可以運行nest start ticket-office:repl

我希望這有幫助。

編輯:修改了你問題的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM