Açısal - 'HammerJS bulunamadı'


96

Materyal Tasarım'ı projeme aktarmaya çalıştığım basit bir açısal proje üzerinde çalışıyorum, ancak bazı bileşenler düzgün çalışmıyor ve bir konsol uyarısı şunu söylüyor:

HammerJS bulunamadı. Bazı Açısal Malzeme bileşenleri düzgün çalışmayabilir.

Ben var hammerjsda yüklenmiş ve @angular/material. Bu sorunu nasıl çözerim?



Kenar notu

Bu değer belirterek olabileceğini sen varsa hammerjsyüklenir ve bileşenleri yine emin kullandığınız yapmak için doğru oluşturulmuyorsa angular material bileşenleri ile değil html elemanları materialize-css sınıflar . Eğer varsa vardır kullanarak materialize-cssyerine angular material, ayrı projenize eklemek gerekecektir.

Yanıtlar:


163

Sizin de package.jsondosyaya bu eklemekdependencies

"hammerjs": "^ 2.0.8",

Veya alternatif bir otomatik yol istiyorsanız, kök proje klasörünüze yazabilir npm i hammerjs --save(veya npm i hammerjs@2.0.8 --saveisterseniz, 2.0.8günümüzün en son sürümü olduğu için) ve ardından sorun devam ederse, klasörü silmeyi ve köke yeniden yüklemeyi deneyin. Ayrıca proje klasörü çalışan tarafından kontrol edecektir ( Oturuyor ), ..., içinde dosya ve bunları yükleyin.node_modulesnpm installdependencieshammerjsdevDependenciespackage.json

Ayrıca içinde polyfills.ts(yoksa bir tane olması önerilir)

'hammerjs / hammer' ithalatı;

Böylece, beri açısal uygulama idam edilirken bulunacağını polyfills.tskendisi ithal tarafından çağrılan (başka bunu kontrol edebilirsiniz, normal bir durumda) içinde main.tshangi açısal uygulamalar giriş noktasıdır.


9
import deyimini eklemek polyfills.tsuyarıyı susturur, bu harika! Ancak materyal tasarım bileşenleri hala doğru şekilde oluşturulmuyor: / Soru açıklamasına bir ekran görüntüsü ekleyeceğim. Şimdiye kadarki yardımınız için teşekkürler!
Danoram

2
Hayır. ancak bir çözüm bulduğumda tekrar kontrol edeceğim.
Danoram

2
Görünüşe göre css bağlantısını dosyama eklemeyi unutmuşum index.html. whoopsie .. Şimdi her şey yolunda görünüyor. Yardım için teşekkürler!
Danoram

3
İhtiyaç duyan bileşenlerin hiçbirini kullanmıyorum hammer. Bu uyarıları devre dışı bırakmanın bir yolu var mı? Testlerimde bunlardan 30 tane aldım.
CWSpear

1
'hammerjs / hammer' ithalatı; benim için uyarı kaldırıldı
silentsudo

103

Hammerjs yükleyin

  • ile NPM

    npm install --save hammerjs
    
  • (veya) iplik ile

    yarn add hammerjs
    

Ardından hammerjsuygulamanızın giriş noktasına aktarın (ör. Src / main.ts).

import 'hammerjs';




1
ah güzel cevap, bunun muhtemelen bu soruyu bulan birçok insanın bilmek isteyebileceği şey olduğunu
düşünmek

7
Bu doğru cevap olmalı. Ek olarak, çalışırken uyarıyı düzeltmek için malzeme bileşenlerini kullanan import 'hammerjs';her *.spect.tstest dosyasına eklemelisiniz ng test.
Cartucho

3
Değiştirmeme gerek yoktu tsconfig.jsonama ithalat çalışıyor, cevabın için teşekkürler.
Sahte

İçe aktarımı her özellik dosyasına eklemeniz gerekiyorsa, bunu karma.conf dosyasına eklemenin bir yolu olması gerekmez mi?
Jeff

Gönderme yapılan kaynak diyor import it on your app's entry point (e.g. src/main.ts)ziyade app.module.ts içinde. Açıkçası, aslında yine de önemli değil.
Stack

9

Senin içinde systemjs.config.jsdosyaya ayrıca aşağıdaki giriş eklemek gerekir:

'hammerjs': 'npm:hammerjs/hammer.js',

tabii ki ile birlikte:

'@angular/material': 'npm:@angular/material/bundles/material.umd.js',

Kodunuzda eksik olan diğer şey (en azından GH deposundaki şeye bağlı olarak), Materyal Tasarım CSS'sinin dahil edilmesidir, bunu index.htmldosyanıza ekleyin :

<link href="https://rawgit.com/angular/material2-builds/master/core/theming/prebuilt/indigo-pink.css" rel="stylesheet">

Umarım bu yardımcı olur.


Size geri dönmem bu kadar uzun sürdüğü için özür dilerim. Projemin systemjs kullandığını sanmıyorum. css'i içe aktarmayı unutmam konusunda haklı olmanıza rağmen! çok teşekkür ederim, şimdi doğru görünüyor!
Danoram

7

bu benim için çalıştı (ve bu da ionic4 ile) Hammer.js'nin çalışmasını ve ayrıca material.angular.io (altta) ile iyonik olmasını sağlayabilirim

Çekiç + iyonik (aynı zamanda çekiç + köşeli):

npm install --save hammerjs
npm install --save @types/hammerjs

sonra

package.json
make sure in dependencies there is this line
"hammerjs": "^2.0.8",

sonra

tsconfig.json - added types as seen below

"compilerOptions": {
...
...
"types": [
"hammerjs"
]
}

sonra

in app.component.ts (only there)
import 'hammerjs';

sonra

in html file (I just took out the first and last < > signs)
div id="myElement"></div
in .ts file

Hammerjs site çalışmalarından örnek kod

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.");
});

Çekiç + iyonik + malzeme: malzeme çekiçinin iyonik ile çalışmasını sağlamak için

in app.module
import { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
import { GestureConfig } from '@angular/material';

providers: [
    { provide: HAMMER_GESTURE_CONFIG, useClass: GestureConfig },
]

ve işte, malzeme kaydırıcınız çalışıyor.


3

Komut satırınızı veya powershell'i açın, angular2 projenizin dizinini yazın:, cd your-project's-rootenter tuşuna basın ve yapıştırın:

npm install hammerjs --save

Npm, tüm bağımlılıkları package.jsondosyanıza otomatik olarak ekler .


Npm'deki @torazaburo Hammerjs sürümü sık sık güncelleniyor, böylece OP, npm komutunu kullanarak hammerjs yüklerse güncel ve çalışır durumda olacağından emin olabilir.
nazik kullanıcı

@torazaburo Dürüst olmak gerekirse --save, npm ile kurarken kullanmadım ve her şey yolunda gitti, ama çok deneyimli bir kullanıcı olduğunuz için sizinle tartışmak mantıksız olurdu.
nazik kullanıcı

--saveOtomatik olarak kullanılacağı için artık gerekli olmadığını düşünüyorum . docs.npmjs.com/cli/install
Sahte

1
Atlarsanız, --saveyine de çalışacaktır, ancak package.json dosyasına eklenmeyecektir; bu npm install, gelecekte çalışırken otomatik olarak yüklenmeyeceği anlamına gelir
Niklas

2
  1. npm hammerjs yükle - kaydet
  2. npm install @ types / hammerjs --save-dev
  3. bunu, derleyici seçenekleri altında typescript.config dosyasına ekleyin

    "türler": ["hammerjs"]

  4. bunu app.components.ts'e ekleyin:

Hammerjs


SİZ efendim, bir kurtarıcısınız ve eğer ikinci bir oğul sahibi olmayı başarırsam, sizin adınızı alacak!
codingbuddha

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.