Saya mendapatkan error terkait sub-paket @intlayer/*
Masalah ini biasanya terjadi setelah pembaruan paket Intlayer.
Contoh pesan error:
Salin kode ke clipboard
Error: Cannot find module '@intlayer/types'Salin kode ke clipboard
TypeError: (0 , __intlayer_config_client.colorize) is not a functionat import { colorize } from '@intlayer/config';Salin kode ke clipboard
✖ ERROR No matching export in "node_modules/@intlayer/config/dist/esm/client.mjs" for import "clearModuleCache"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:9:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config"; | ~~~~~~~~~~~~~~~~✖ ERROR Tidak ada ekspor yang cocok di "node_modules/@intlayer/config/dist/esm/client.mjs" untuk impor "configESMxCJSRequire"node_modules/@intlayer/unmerged-dictionaries-entry/dist/esm/index.mjs:3:27:3 | import { clearModuleCache, configESMxCJSRequire } from "@intlayer/config"; | ~~~~~~~~~~~~~~~~~~~~Alasan
Paket dasar seperti intlayer, react-intlayer, react-native-intlayer, vue-intlayer menggunakan kembali sub-paket yang sama seperti @intlayer/config, @intlayer/core, @intlayer/types untuk menghindari duplikasi kode.
Antara dua versi, ekspor dari sub-paket tidak dijamin sama. Untuk membatasi masalah ini, intlayer mengunci versi sub-paket ke versi paket utama.
Contoh: intlayer@1.0.0 menggunakan @intlayer/config@1.0.0, @intlayer/core@1.0.0, @intlayer/types@1.0.0
(Kecuali untuk @intlayer/swc), sub-paket @intlayer/* tidak dimaksudkan untuk digunakan secara langsung. Jadi kami menyarankan untuk tidak menginstalnya secara langsung.
Resolusi
- Pastikan versi paket utama dan sub-paket adalah sama.
Salin kode ke clipboard
{ "dependencies": { "intlayer": "7.0.1", "react-intlayer": "7.0.0", // Versi salah, seharusnya 7.0.1 }, "devDependencies": { "intlayer-editor": "7.0.1", },}- Coba hapus lockfile dan folder node_modules lalu instal ulang dependensi.
Terkadang, package manager menyimpan versi lama dari sub-paket di lockfile dalam cache. Untuk memperbaikinya, Anda bisa mencoba menghapus lockfile dan folder node_modules lalu instal ulang dependensi.
Salin kode ke clipboard
rm -rf package-lock.json node_modulesnpm install- Periksa instalasi global
Kami menyarankan untuk menginstal intlayer atau intlayer-cli secara global untuk mengakses perintah CLI. Jika versi global tidak sama dengan versi lokal, package manager mungkin menganggap versi yang salah.
Periksa apakah sebuah paket terinstal secara global
Salin kode ke clipboard
npm list -g --depth=0Salin kode ke clipboard
npm list -g --depth=0 | grep intlayerSalin kode ke clipboard
yarn global listSalin kode ke clipboard
pnpm list -g --depth=0Perbaiki potensi konflik dependensi global
Salin kode ke clipboard
npm uninstall -g intlayer intlayer-cliSalin kode ke clipboard
yarn global remove intlayer intlayer-cliSalin kode ke clipboard
pnpm remove -g intlayer intlayer-cli- Coba bersihkan cache
Untuk beberapa lingkungan seperti docker, github actions, atau platform hosting web seperti Vercel, cache mungkin ada. Anda bisa mencoba membersihkan cache dan mencoba instalasi ulang.
Anda juga bisa mencoba membersihkan cache package manager Anda dengan perintah berikut:
Salin kode ke clipboard
npm cache clean --forceSalin kode ke clipboard
yarn cache cleanSalin kode ke clipboard
pnpm cache clean