Angular - "Не удалось найти HammerJS"
Я работаю над простым проектом angular2, где я пытаюсь импортировать Material Design в свой проект, но некоторые из компонентов работают некорректно, а предупреждение в консоли говорит:
Не удалось найти HammerJS. Определенные компоненты Angular могут не работать правильно.
У меня установлен hammerjs
, а также @angular/material
. Как решить эту проблему?
Мой проект можно найти в этом github repo
Sidenote
Возможно, стоит отметить, что если у вас установлено hammerjs
, а ваши компоненты по-прежнему не отображаются правильно, убедитесь, что вы используете angular material 2
компоненты, а не элементы html с materialize-css
< сильные > классы.
Если вы используете materialize-css
вместо angular material 2
, вам нужно будет добавить его в свой проект отдельно.
Ответы
Ответ 1
В вашем файле package.json
добавьте это в dependencies
"hammerjs": "^ 2.0.8",
Или, если вы хотите использовать альтернативный автоматический способ, просто введите npm я hammerjs --save
(или npm я [email protected] --save
если хотите, поскольку 2.0.8
является последней версией в настоящее время) в корневой папке проекта и Затем проверьте, если проблема все еще возникает, попробуйте удалить папку node_modules
и переустановить ее в корневой папке проекта, также выполнив npm install
которая проверит dependencies
(где находится hammerjs
), devDependencies
..., в файле package.json
и установите их.
Также в вашем polyfills.ts
(рекомендуется иметь один, если у вас его нет)
импорт 'hammerjs/hammer';
Таким образом, он будет найден во время выполнения вашего углового приложения, так polyfills.ts
сам polyfills.ts
вызывается импортом (в обычном случае, если вы можете это проверить) в main.ts
который является точкой входа угловых приложений.
Ответ 2
Установить hammerjs
Затем импортируйте hammerjs
в точку входа вашего приложения (например, src/main.ts).
import 'hammerjs';
Ответ 3
В вашем файле systemjs.config.js
вам также необходимо добавить следующую запись:
'hammerjs': 'npm:hammerjs/hammer.js',
вместе с тем:
'@angular/material': 'npm:@angular/material/bundles/material.umd.js',
Другая вещь, отсутствующая в вашем коде (по крайней мере, на основе того, что у вас есть в репозитории GH) - это включение CSS Material Design, добавьте это в свой index.html
файл:
<link href="https://rawgit.com/angular/material2-builds/master/core/theming/prebuilt/indigo-pink.css" rel="stylesheet">
Надеюсь, это поможет.
Ответ 4
это сработало для меня (и это также относится к ionic4), я мог бы заставить работу hammer.js - и также ионное с material.angular.io (внизу)
Молот + ионный (молот + угловой):
npm install --save hammerjs
npm install --save @types/hammerjs
затем
package.json
make sure in dependencies there is this line
"hammerjs": "^2.0.8",
затем
tsconfig.json - added types as seen below
"compilerOptions": {
...
...
"types": [
"hammerjs"
]
}
затем
in app.component.ts (only there)
import 'hammerjs';
затем
in html file (I just took out the first and last < > signs)
div id="myElement"></div
in .ts file
Пример кода с сайта Hammerjs работает
let element2 = document.getElementById('myElement');
let hamming = new Hammer(element2);
hamming.on("panleft panright tap press pressup", function(ev) {
element2.textContent = ev.type +" gesture detected.";
console.log(ev.type +" gesture detected.");
});
Молоток + ионный + материал: чтобы заставить материал работать с ионным
in app.module
import { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
import { GestureConfig } from '@angular/material';
providers: [
{ provide: HAMMER_GESTURE_CONFIG, useClass: GestureConfig },
]
и вуаля, ваш слайдер материала работает.
Ответ 5
Откройте свою командную строку или PowerShell, введите каталог проекта angular2: cd your-project's-root
, нажмите и вставьте:
npm install hammerjs --save
Npm автоматически добавит все зависимости в ваш файл package.json
.
Ответ 6
- npm install hammerjs --save
- npm install @types/hammerjs --save -dev
-
добавить это в typescript.config под опциями компилятора
"types": ["hammerjs"]
-
добавьте это в app.components.ts:
Ответ 7
Установить с
npm install --save hammerjs
или же
yarn add hammerjs
После установки импортируйте его в точку входа вашего приложения (например, src/main.ts).
import 'hammerjs';
Руководство по началу работы с угловым материалом