#javascript #angular #typescript #import #syntax-error
#язык JavaScript #угловой #машинописный текст #импортировать #синтаксическая ошибка
Вопрос:
Для дальнейшего объяснения можно представить, что у меня есть набор модулей JavaScript, которые запускаются из одного начального модуля, который импортируется в компонент Angular.
Что я пробовал:
Я использую "type" : "module"
в файле package.json и объявил все сценарии как модули в файле типов, я также объявил их в разделе скрипты в angular.json. Я зашел так далеко, что настроил сценарии как модули в index.html, но я все еще получаю «Неперехваченную синтаксическую ошибку: невозможно использовать оператор импорта вне модуля».
Когда возникает ошибка:
Ошибка возникает в первом операторе импорта из исходного модуля JavaScript, например, в строке 1.
Инструкция import просто выглядит так из исходного модуля JavaScript с последующими инструкциями для других сценариев, все из которых вызовут ту же проблему.
import * as objParser from './scripts/objParser.js'
Я могу подтвердить, что проблема не в логике кода, так как код действительно работает в режиме разработки, но, конечно, я не могу запустить это как рабочий пакет.
Может быть, в чем проблема?
Моя идея заключается в том, что Angular не проверяет эти файлы JavaScript как модули, поскольку они не используют импорт в базе кода Angular. Есть Какие-Нибудь Идеи?
Ответ №1:
использовать const objParser = require('./scripts/objParser.js');
.
Комментарии:
1. Я преобразовал скрипт в пакет с browerify, но я не уверен, как я теперь могу использовать его в угловом компоненте
Ответ №2:
Вы можете создать index.ts
файл в папке «Сценарии», который позволит вам импортировать все модули из этого файла.
вы добавляете их в index.ts
подобные
export * from './scripts/objParser.js';
тогда вы могли бы импортировать такие
import { ObjParser } from './scripts'
если это несовместимо, это может быть связано с тем, что они не являются библиотеками машинописных текстов.