JS — Функции не работают после импорта VAR из другого файла

#javascript #arrays #import #export

Вопрос:

У меня есть следующий код на 2 разных

 //file 1 expVar.js
export var myVar = [ //content ];


//file 2 impVar.js
import myVar from '../PathToFile';
 

И когда я пытаюсь записать функцию в файл 2 после импорта, она диктует, что функция объявлена, но никогда не читается. (Я использую его в HTML-файле) , например:

 //file 2 impVar.js
import myVar from '../PathToFile';        
function write(){ 
}  //DOESNT WORK returns "Function is declared but never read"
 

Но он не возвращает эту ошибку, если я не использую импорт. Заранее спасибо за помощь!

Комментарии:

1. вы пробовали экспортировать var myVar по умолчанию = [ … ]; или импортировать { myVar } из ‘../pathToFile’; ??

Ответ №1:

Важный момент, который вы, возможно, не учли, заключается в том, что вы просто можете import и export из модулей:

плохие ошибки импорта и экспорта

Неперехваченная синтаксическая ошибка: объявления об экспорте могут отображаться только на верхнем уровне модуля

Неперехваченная синтаксическая ошибка: объявления об импорте могут отображаться только на верхнем уровне модуля

Это ошибки, которые вы увидите при их использовании в чистом js.

Так что же нам делать?

Во-первых: мы можем изменить наши файлы с filename.js на filename.module.js .

Во-вторых: мы можем задать их тип в нашем HTML-файле. итак, у нас есть :

 <html>
<head>
  <script src="./firstfile.js" type="module"></script>
  <script src="./secondfile.js" type="module"></script>
</head>
<body>

</body>
</html>
 

Примечание: вы должны import использовать переменную с фигурными скобками, например:

 import { myVar } from '../PathToFile';
 

или

экспортируйте это как default . так:

 export default myVar = [ //content ];
 

Все мои разговоры были только о вашей проблеме с импортом и экспортом, но ваша главная проблема в том, что вы не вызвали свою функцию 🙂

просто используйте write() в конце вашего файла, чтобы вызвать его, и ваш браузер не скажет: Function is declared but never read .

Комментарии:

1. Я действительно вызвал его в HTML-файле. У меня есть HTML-файл со ссылкой на файл JS, и он отлично работает, если я просто использую VAR в этом основном файле JS. Я пытаюсь организовать все лучше, потому что массив содержит ~1300 строк. Я все еще не могу заставить его работать со всем этим

2. @MMelo31 не могли бы вы поделиться со мной скрипкой, чтобы я понял, что вы имеете в виду?!!? Я не могу понять, в чем твоя главная проблема.