typescript - Vấn đề khi khởi chạy ứng dụng trong NX monorepo: (không thể đọc undefined (đang đọc 'projects')
Tôi có một dự án (cửa hàng tạp hóa) trong monorepo NX sử dụng nestjs cùng với những thứ khác. Ứng dụng này là một API backend nghiêm ngặt. Tôi muốn thêm một frontend và vì mục đích này tôi đã kéo react vào dự án. Sau khi tạo một dự án mới trong monorepo (nx g @nrwl/react:app grocery-shop-webapp) - tôi không thể chạy bất kỳ ứng dụng nào (nx serve grocery-shop).
Tôi đang nhận được một thông báo lỗi:
NX Không thể đọc thuộc tính của undefined (đang đọc 'projects')
Mã file nx.json của tôi trông như sau:
{
"$schema": "./node_modules/nx/schemas/nx-schema.json",
"npmScope": "grocery-shop",
"tasksRunnerOptions": {
"default": {
"runner": "@nrwl/nx-cloud",
"options": {
"cacheableOperations": ["build", "lint", "test", "e2e"],
"accessToken": "NjYzNzg4YjMtYjM1ZC00M2NkLThhNzAtZWE2NzM4ZjhiNWUzfHJlYWQtd3JpdGU="
}
}
},
"targetDefaults": {
"build": {
"dependsOn": ["^build"],
"inputs": ["production", "^production"]
},
"test": {
"inputs": ["default", "^production", "{workspaceRoot}/jest.preset.js"]
},
"lint": {
"inputs": ["default", "{workspaceRoot}/.eslintrc.json"]
},
"e2e": {
"inputs": ["default", "^production"]
}
},
"namedInputs": {
"default": ["{projectRoot}/**/*", "sharedGlobals"],
"production": [
"default",
"!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
"!{projectRoot}/tsconfig.spec.json",
"!{projectRoot}/jest.config.[jt]s",
"!{projectRoot}/.eslintrc.json"
],
"sharedGlobals": ["{workspaceRoot}/babel.config.json"]
},
"defaultProject": "grocery-shop",
"generators": {
"@nrwl/react": {
"application": {
"style": "css",
"linter": "eslint",
"bundler": "webpack",
"babel": true
},
"component": {
"style": "css"
},
"library": {
"style": "css",
"linter": "eslint"
}
}
}
}
Vì vậy, tôi đã quyết định thực hiện tùy chọn "dự án" thủ công trong tệp này.
...
"npmScope": "grocery-shop",
"projects": {
"grocery-shop": {
"root": "apps/grocery-shop",
"tags": []
},
"grocery-shop-webapp": {
"root": "apps/grocery-shop-webapp",
"tags": []
}
}
...
Vì vậy, bây giờ khi tôi cố gắng chạy nx serve grocery-shop, tôi nhận được một thông báo lỗi:
NX Kể từ Nx 13, cấu hình dự án nên được chuyển từ nx.json sang workspace.json/project.json. Vui lòng chạy "nx format" để sửa lỗi này.
NX Không tìm thấy cấu hình cho nhiệm vụ grocery-shop:serve
Tôi sẽ đề cập rằng "nx format" không cải thiện gì và lỗi vẫn còn đó.
Các bạn có thể giúp tôi chạy cả hai ứng dụng không?
CHỈNH SỬA: đầu ra của nx report:
npm : 9.2.0
nx : 15.3.3
@nrwl/angular : Not Found
@nrwl/cypress : 15.6.2
@nrwl/detox : Not Found
@nrwl/devkit : 15.3.3
@nrwl/esbuild : Not Found
@nrwl/eslint-plugin-nx : 15.3.3
@nrwl/expo : Not Found
@nrwl/express : Not Found
@nrwl/jest : 15.6.2
@nrwl/js : 15.6.2
@nrwl/linter : 15.3.3
@nrwl/nest : 15.4.2
@nrwl/next : Not Found
@nrwl/node : 15.3.3
@nrwl/nx-cloud : 15.0.2
@nrwl/nx-plugin : Not Found
@nrwl/react : 15.6.2
@nrwl/react-native : Not Found
@nrwl/rollup : Not Found
@nrwl/schematics : Not Found
@nrwl/storybook : Not Found
@nrwl/web : Not Found
@nrwl/webpack : 15.3.3
@nrwl/workspace : 15.3.3
typescript : 4.9.4
GIẢI PHÁP: Tôi đã sử dụng lệnh nx migrate latest để cập nhật phiên bản của NX và các phụ thuộc của nó như @Craigory Coppola đã chỉ ra đúng - tôi đã gặp phải sự không khớp phiên bản phụ thuộc.
Câu trả lời #1
Điều này có vẻ như bạn có các phiên bản gói nrwl/nx không khớp. Bạn có thể chạy nx report không?
Tất cả chúng nên giống nhau ngoại trừ nx cloud