#javascript #import #lib
#javascript #импорт #библиотека
Вопрос:
Почему я думаю, что поместить мою библиотеку в global и получить к ней доступ в разных файлах — правильный выбор: сначала у меня есть один файл js, но мой файл становился все больше, поэтому я просто разделяю его на две части, и теперь я получаю доступ ко второму файлу functions с помощью экспорта функций. Итак, почему я должен импортировать библиотеку один раз, когда я использую один файл, но несколько раз, когда я использую несколько файлов
Что я хочу сделать
У меня возникает ошибка при попытке использовать библиотеку в JavaScript.
Для примера я буду использовать ‘lib’ вместо реальной библиотеки из js
Это мои файлы
app.js
import lib from 'lib'
console.log(lib)
Это работает, но когда я добавляю
app.js
import lib from 'lib'
import my_file from './file_path.js'
file_path.js
console.log(lib)
Это не работает, и я должен импортировать свою библиотеку в новый файл, например
file_path.js
import lib from 'lib'
console.log(lib)
Я ПОЛУЧАЮ ЭТУ ОШИБКУ
Ошибка неперехваченной ссылки: библиотека не определена
Но я не хочу дублировать свой импорт, как я могу это сделать? Спасибо
Комментарии:
1. Можете ли вы привести пример фактического пути к файлу? Вам нужно, чтобы это был относительный путь (начинается с ‘./’)
2. Есть ли какая-либо ошибка в консоли?
3. @DavinTryon я использую ./, не нахожу путь — это не моя проблема
4. @Reger я получаю: неперехваченная ошибка ссылки: библиотека не определена
5. Вопрос в том, почему вы не хотите этого делать? Я имею в виду, AFAIK, что вы делаете, это абсолютно правильный выбор и лучший, поскольку он четко определяет зависимость. Обычно переход на глобальный уровень не является хорошим вариантом
Ответ №1:
Я нашел решение, которое работает с window
вам просто нужно добавить свою библиотеку в такую переменную window:
app.js
import lib from 'lib';
window.lib = lib;
import my_file from './file_path.js'
И теперь вы можете использовать свою библиотеку в «my_file», не импортируя ее снова
PS: спасибо людям, которые помогают мне решить мою проблему 🙂
Комментарии:
1. Я не знал, что это может сработать. Имейте в виду, что
window
это глобальный объект developer.mozilla.org/en-US/docs/Glossary/Global_object .
Ответ №2:
/! Вы должны быть в узловом приложении, чтобы использовать этот метод /!
Я также нахожу альтернативу window и import
Мы можем использовать require таким образом:
window.lib = require('lib');
Теперь у нас есть только одна строка вместо 2
Это лучшее решение, которое я нашел до сих пор, не знаю, можем ли мы сделать лучше, дайте мне знать