Код: Выделить всё
let someModule = null;
try {
someModule = await import ("may-not-exist"); // Webpack and Vite erroring
} catch (e) {
// pass
}
// ... check if someModule is null
< /code>
Webpack и Vite (и, возможно, другие?) Оба пытаются статически проанализировать импорт, и поэтому, когда он используется в проекте, который опирается на Webpack или VITE, они не могут создать, если модуль не найдено. class = "lang-js prettyprint-override">someModule = await import (/* webpackIgnore: true */"may-not-exist"); // Webpack happy, not Vite
< /code>
Это работает для Webpack, но не Vite. Я не мог найти подобный обходной путь для VITE. Единственное решение, которое я обнаружил, состояло в том, чтобы заставить имя модуля быть динамичным, например: < /p>
const tryImport = async (path) => {
try {
return await import(path); // Vite happy, not Webpack
} catch (e__ignored) {
// module doesn't exist
return null;
}
};
const someModule = await tryImport("may-not-exist");
Код: Выделить всё
Critical dependency: the request of a dependency is an expression
Вопрос:
Как я могу реализовать дополнительные зависимости в библиотеке, которая работает в различных средах, включая Webpack и Veite? Я, очевидно, не хочу, чтобы пользователи изменяли свою конфигурацию, чтобы подавить или игнорировать подобные предупреждения.
Подробнее здесь: https://stackoverflow.com/questions/794 ... happy-with
Мобильная версия