npm - TypeScript'i yeni bir ana sürüme nasıl yükseltirim
Git deposundaki TypeScript çalışma zamanı, tüm paketleri yükselttikten ve node_modules ile package-lock.json'u sildikten sonra npm install ile yeniden yüklememe rağmen hâlâ 4.9.5 olarak görünüyor.
tsc sürümünü 5.0'dan daha güncel nasıl alabilirim?
npx tsc --version
Version 4.9.5
./node_modules/.bin/tsc --version
Version 4.9.5
Tüm paketlerin "typescript"i bir geliştirme bağımlılığı olarak listelediği bir NPM monorepom var. Bir süre önce her paket üzerinde "npm uninstall typescript" komutunu kullandım, ardından "npm install typescript -D" ile yeniden ekledim, böylece paket bağımlılıkları yeni ana sürümü listeliyordu (önce v4 idi, şimdi v5).
Paketlerimden birini (create-react-app) oluşturduğumda, ESLint bana TypeScript sürüm 4.9.5 kullandığımı düşündüğünü gösteriyor.
WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.
You may find that it works just fine, or you may not.
SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <4.9.0
YOUR TYPESCRIPT VERSION: 4.9.5
Please only submit bug reports when using the officially supported version.
Hiçbir package.json dosyam veya package-lock.json dosyam v4 göstermiyor. Hepsi v5 gösteriyor.
npm list --depth=0 | grep -i typescript
│ └── [email
│ └── [email
│ ├── [email
│ └── [email
│ ├── [email
│ ├── @babel/[email
│ ├── [email
│ ├── [email
│ ├── [email
│ ├── @babel/[email deduped
│ ├── @rollup/[email
│ └── [email
│ ├── [email
│ ├── [email
│ └── [email
│ └── [email
│ └── [email
│ └── [email
│ └── [email
│ ├── [email
│ ├── [email
│ ├── [email
│ ├── [email
│ ├── [email
│ ├── [email
│ ├── @babel/[email deduped
│ ├── [email
│ ├── [email
│ └── [email
│ ├── [email
│ └── [email
│ └── [email
│ ├── [email
│ └── [email
│ └── [email
│ └── [email
Şu anda nvm aracılığıyla node 16.19 ve npm 8.11 kullanıyorum.
node --version
v16.19.1
npm --version
8.19.3
DÜZENLEME: Bu gönderi Typescript hakkında, React veya Create-React-App hakkında değil, bir NPM çalışma alanları (mono) deposunda. Herhangi bir karışıklık için özür dilerim.
Cevap #1
Eğer sen
- bir NPM çalışma alanları monoreposu kullanarak,
- ve iç içe geçmiş paketlerin Typescript üzerinde bir (dev) bağımlılığı var,
- ve TypeScript sürümünü yükselttiniz,
- ama
npx tsc --versionyine de eski sürümü gösteriyor
Örneğin:
cd <repo_clone_directory>
ls -1 packages/
micro-service-1
micro-service-2
ui-1
ui-2
npx tsc --version
Version 4.9.5
O zaman muhtemelen en üst düzey package.json dosyanıza Typescript için bir (dev) bağımlılığı EKLEmeniz gerekiyor.
cd <repo_clone_directory>
npm install typescript
npx tsc --version
Version 5.2.2
Ve eğer CreateReactApp paketiniz, ESLint çalıştırıldığında TypeScript sürümünüzün desteklenmediğini belirtiyorsa, o zaman yapmalısınız
- ESLint'i geçici olarak devre dışı bırak.
- Sonunda CRA terk edildiği için Vitejs'e geçilecek.
packages/ui-1/package.json dosyasından
"scripts": {
"start": "DISABLE_ESLINT_PLUGIN=true react-scripts start",
"build": "DISABLE_ESLINT_PLUGIN=true react-scripts build",
DÜZENLEME: En üst düzey package.json dosyasına "typescript" eklemek, küçük sürüm yükseltmeleri için de yardımcı olur.
