Файл Js внутри node_modules не доступен для index.html - PullRequest
0 голосов
/ 27 июня 2018

Я играю с трафаретом Что я сделал до сих пор:

  1. Создан компонент в трафарете
  2. Опубликовал в нпм
  3. Создан угловой проект
  4. Установлен трафаретный компонент для углового проекта
  5. Добавлен файл component.js в файл index.html

Когда я добавляю

<script src="/node_modules/stencil-poc-ng/dist/mycomponent.js"></script>

затем консоль браузера выдаст следующую ошибку:

GET http://localhost:4200/node_modules/stencil-poc-ng/dist/mycomponent.js 404 (не найдено) localhost /: 1 Отказался выполнять скрипт из 'http://localhost:4200/node_modules/stencil-poc-ng/dist/mycomponent.js', поскольку его MIME-тип (' text / html ') не является исполняемым, и включена строгая проверка MIME-типов.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Существует два способа использования компонента трафарета в проекте Angular, и вот они:

  1. Добавьте удаленный путь к вашему js-файлу, например: https://unpkg.com/{module-name}@{module-version}/dist/{relevant-js-

  2. Добавьте файл js в папку активов, так как angular находит ресурсы, которые указаны в массиве ресурсов файла angular.json или angular.cli.json.

Спасибо @YoukouleleY за то, что предложили первое решение и дали вескую причину, по которой я не могу получить доступ ко второму

0 голосов
/ 27 июня 2018

Вы создаете приложение Angular, оно не сможет получить доступ к локальному пути на вашем компьютере при работе в браузере. Что делает Angular ng serve:

  • Объедините весь ваш код и зависимости в HTML-файл, CSS-файл и набор JS-файлов
  • Сохранить все эти файлы в памяти (ОЗУ)
  • Запустить веб-сервер для обслуживания этих файлов

Обслуживаются только файлы "в памяти", тогда ваш http://localhost:4200/node_modules/stencil-poc-ng/dist/mycomponent.js всегда будет недействительным

У вас осталось только два варианта:

...