Как я могу импортировать библиотеку в global, чтобы я мог получить к ней доступ в импортированном файле js?

#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
Это лучшее решение, которое я нашел до сих пор, не знаю, можем ли мы сделать лучше, дайте мне знать