Saya mendapatkan error terkait sub-paket @intlayer/*
Masalah ini biasanya terjadi setelah pembaruan paket Intlayer.
Contoh pesan error:
Error: Cannot find module '@intlayer/types'TypeError: (0 , __intlayer_config_client.colorize) is not a functionat import { colorize } from '@intlayer/config';✖ 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.
{ "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.
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
npm list -g --depth=0npm list -g --depth=0 | grep intlayeryarn global listpnpm list -g --depth=0Perbaiki potensi konflik dependensi global
npm uninstall -g intlayer intlayer-cliyarn global remove intlayer intlayer-clipnpm 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:
npm cache clean --forceyarn cache cleanpnpm cache clean