Проблема рабочих областей: пряжа решает «поместить» некоторые зависимости в рабочую область, а не в «корневую» папку node_modules - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть проект, состоящий из двух рабочих областей:

  • client (Angular 8) в packages/client
  • server (NestJS) в packages/server

Это корень package.json:

{
  "name": "workspace-demo",
  "version": "0.0.1",
  "license": "MIT",
  "private": true,
  "workspaces": {
    "packages": [
      "packages/*"
    ]
  }
}

Вот проблема : по некоторым причинам, после добавления некоторыхзависимости от клиента и / или сервера (зависимости от Angular и NestJS), Yarn решил переместить @nestjs зависимости в packages/server/node_modules вместо того, чтобы поместить его в папку root node_modules .То есть эта зависимость была перемещена с node_modules/@nestjs на packages/server/node_modules/@nestjs.

Содержимое packages/client/package.json:

{
  "name": "client",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "@angular/animations": "~8.2.7",
    "@angular/common": "~8.2.7",
    "@angular/compiler": "~8.2.7",
    "@angular/core": "~8.2.7",
    "@angular/forms": "~8.2.7",
    "@angular/platform-browser": "~8.2.7",
    "@angular/platform-browser-dynamic": "~8.2.7",
    "@angular/router": "~8.2.7"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.5",
    "@angular/cli": "~8.3.5",
    "@angular/compiler-cli": "~8.2.7",
    "@angular/language-service": "~8.2.7",
    "@types/node": "~8.9.4",
    "typescript": "~3.5.3"
  }
}

Содержимое packages/server/package.json:

{
  "name": "server",
  "version": "0.0.1",
  "license": "MIT",
  "dependencies": {
    "@nestjs/common": "^6.7.2",
    "@nestjs/core": "^6.7.2",
    "@nestjs/platform-express": "^6.7.2",
    "reflect-metadata": "^0.1.13",
    "rxjs": "^6.5.3"
  },
  "devDependencies": {
    "@types/express": "^4.17.1",
    "@types/node": "^12.7.7"
  }
}
...