Где разместить контент angular-cli.json в приложении Ionic 3
Я использую videogular2 с Ionic 3
приложение. Можете ли вы сказать мне, как я могу сделать ниже вид модификации с приложением ionic 3, так как оно не имеет angular-cli.json
Я установил это так: npm install hls.js --save
Угловой-cli.json
{
...
"apps": [
{
...
"scripts": [
"../node_modules/hls.js/dist/hls.min.js"
],
...
}
],
...
}
Ошибка, так как я не делал выше:
console.js:35 ERROR Error: Uncaught (in promise): ReferenceError: Hls is not defined
ReferenceError: Hls is not defined
at VgHLS.webpackJsonp.1185.VgHLS.createPlayer (vg-hls.js:59)
at VgHLS.webpackJsonp.1185.VgHLS.ngOnChanges (vg-hls.js:47)
at checkAndUpdateDirectiveInline (core.js:12092)
at checkAndUpdateNodeInline (core.js:13598)
at checkAndUpdateNode (core.js:13541)
at debugCheckAndUpdateNode (core.js:14413)
at debugCheckDirectivesFn (core.js:14354)
at Object.eval [as updateDirectives] (LiveEventVideo.html:73)
at Object.debugUpdateDirectives [as updateDirectives] (core.js:14339)
at checkAndUpdateView (core.js:13508)
at callViewAction (core.js:13858)
at execComponentViewsAction (core.js:13790)
at checkAndUpdateView (core.js:13514)
at callWithDebugContext (core.js:14740)
at Object.debugCheckAndUpdateView [as checkAndUpdateView] (core.js:14277)
at ViewRef_.detectChanges (core.js:11300)
at NavControllerBase._viewAttachToDOM (nav-controller-base.js:460)
at NavControllerBase._transition (nav-controller-base.js:540)
at nav-controller-base.js:261
at t.invoke (polyfills.js:3)
at Object.onInvoke (core.js:4629)
at t.invoke (polyfills.js:3)
at r.run (polyfills.js:3)
at polyfills.js:3
at t.invokeTask (polyfills.js:3)
at Object.onInvokeTask (core.js:4620)
at t.invokeTask (polyfills.js:3)
at r.runTask (polyfills.js:3)
at o (polyfills.js:3)
at e.invokeTask [as invoke] (polyfills.js:3)
at p (polyfills.js:2)
at IDBRequest.v (polyfills.js:2)
at c (polyfills.js:3)
at Object.reject (polyfills.js:3)
at NavControllerBase._fireError (nav-controller-base.js:223)
at NavControllerBase._failed (nav-controller-base.js:216)
at nav-controller-base.js:263
at t.invoke (polyfills.js:3)
at Object.onInvoke (core.js:4629)
at t.invoke (polyfills.js:3)
at r.run (polyfills.js:3)
at polyfills.js:3
at t.invokeTask (polyfills.js:3)
at Object.onInvokeTask (core.js:4620)
at t.invokeTask (polyfills.js:3)
at r.runTask (polyfills.js:3)
at o (polyfills.js:3)
at e.invokeTask [as invoke] (polyfills.js:3)
at p (polyfills.js:2)
at IDBRequest.v (polyfills.js:2)
1 ответ
Вам нужно выполнить следующие шаги:
- Установите / скопируйте файлы JS в проект, вы можете использовать npm или скопировать в определенную папку.
$ npm install videogular2 --save
$ npm install @types/core-js --save-dev
$ npm install hls.js --save
- Добавьте к вашему
package.json
эта конфигурация:
...
"config": { "ionic_copy": "./config/copy.config.js" },
...
- Создайте файл по следующему пути
ROOT_OF_YOUR_PROJECT/config/copy.config.js
& добавить следующее:
module.exports = {
copyAssets: {
src: ['{{SRC}}/assets/**/*'],
dest: '{{WWW}}/assets'
},
copyIndexContent: {
src: ['{{SRC}}/index.html', '{{SRC}}/manifest.json', '{{SRC}}/service-worker.js'],
dest: '{{WWW}}'
},
copyFonts: {
src: ['{{ROOT}}/node_modules/ionicons/dist/fonts/**/*', '{{ROOT}}/node_modules/ionic-angular/fonts/**/*'],
dest: '{{WWW}}/assets/fonts'
},
copyPolyfills: {
src: ['{{ROOT}}/node_modules/ionic-angular/polyfills/polyfills.js'],
dest: '{{BUILD}}'
},
copySwToolbox: {
src: ['{{ROOT}}/node_modules/sw-toolbox/sw-toolbox.js'],
dest: '{{BUILD}}'
},
copyVideogularStyles: {
src: ['{{ROOT}}/node_modules/videogular2/fonts/videogular.css'],
dest: '{{BUILD}}'
},
copyHlsScripts: {
src: ['{{ROOT}}/node_modules/hls.js/dist/hls.min.js'],
dest: '{{BUILD}}'
},
}
Изменить файл src/index.html
импортировать ваши скрипты и стили
<head>
...
<link href="build/videogular.css" rel="stylesheet">
...
</head>
<body>
<script type="text/javascript" src="build/hls.min.js"></script>
</body>
РЕДАКТИРОВАТЬ: объяснение
Здесь мы решили исправить проблему, известную в Ionic, которая заключается в импорте внешних ресурсов (скриптов, стилей, изображений...).
Мы добавили небольшой файл конфигурации в package.json
который заставит ионный копировать assets
мы хотим в папке сборки.
Что такое папка сборки? Папка сборки - это папка, созданная во время выполнения приложения. Он содержит ваш artifects
, По умолчанию ionic не включает ресурсы в эту папку сборки.
Почему мы добавили тег scripts & styles в index.html
? Просто то, что мы делали до сих пор, это просто копирование assets
в build
папка. Но нам нужно указать приложению использовать их. Вот почему мы импортируем их в index.html
тоже. Обратите внимание на путь, который мы использовали в index.html
это путь, по которому мы скопировали наши активы.