typescript - Εισαγωγή css-element-queries σε μια εφαρμογή angular 6
Προσπαθώ να εγκαταστήσω και να χρησιμοποιήσω τη βιβλιοθήκη css-element-queries.
Για την εγκατάσταση, χρησιμοποίησα την ακόλουθη εντολή:
npm i css-element-queries
Μετά από αυτό, προσπάθησα να εισάγω την κλάση ResizeSensor από τη βιβλιοθήκη με αυτόν τον τρόπο:
import { ResizeSensor } from 'css-element-queries';
Αλλά ο μεταγλωττιστής εμφανίζει το ακόλουθο σφάλμα:
Δεν ήταν δυνατή η εύρεση αρχείου δήλωσης για το module 'css-element-queries'. 'c:/PrjNET/Elevation3/FW/4.00/Mainline/Framework/Development/Client/ElevationJS/ngcore/node_modules/css-element-queries/index.js' έχει εννοιολογικά τύπο 'any'. Δοκιμάστε
npm install @types/css-element-queriesαν υπάρχει ή προσθέστε ένα νέο αρχείο δήλωσης (.d.ts) που να περιέχει `declare module 'css-element-queries';`
Βασισμένος στο μήνυμα σφάλματος, προσπάθησα να εκτελέσω την ακόλουθη εντολή npm:
npm install @types/css-element-queries
Αλλά ο μεταγλωττιστής ανέκτησε το ακόλουθο σφάλμα:
npm ERR! κωδικός E404 npm ERR! 404 Δεν βρέθηκε: @types/css-element-queries@latest
Πώς μπορώ να εισάγω τη βιβλιοθήκη css-element-queries;
Απάντηση #1
Δεν χρησιμοποιώ Angular, αλλά μόλις συνάντησα την εισαγωγή του ResizeSensor σε μια εφαρμογή βασισμένη σε TypeScript. Δεν ξέρω πότε το css-element-queries πρόσθεσε το ResizeSensor.d.ts, αλλά τώρα είναι μέρος του πακέτου.
Ωστόσο, αυτό το αρχείο είναι λανθασμένο. Έχω καταχωρήσει ένα ζήτημα στο GitHub γι' αυτό. Χθες έκανα κάποια έρευνα για το πώς να το εισαγάγω και κατέληξα να διαβάζω για τους διαφορετικούς τύπους module και πώς να δημιουργήσω ένα αρχείο typings στην τεκμηρίωση του TypeScript.
Αυτό με οδήγησε στον σωστό τρόπο να ορίσω το αρχείο τύπων για το ResizeSensor. Ουσιαστικά, παίρνετε αυτό από το αποθετήριο του GitHub και αλλάζετε τη γραμμή εξαγωγής από:
export default ResizeSensor;
σε
export = ResizeSensor;
τότε μπορείτε να χρησιμοποιήσετε αυτό ως την εισαγωγή σας:
import ResizeSensor = require('Libs/css-element-queries/ResizeSensor');
Η διαδρομή σας προς τα css-element-queries θα είναι διαφορετική επειδή δεν θα μπορείτε να το κατεβάσετε από το npm μέχρι να διορθώσει ο διαχειριστής του πακέτου το αρχείο .d.ts.
Ιδού ένας σύνδεσμος για το θέμα στο GitHub.
Απάντηση #2
Ενώ δεν υπάρχει ακόμη πακέτο typings, μπορώ να χρησιμοποιήσω το πακέτο css-element-queries χρησιμοποιώντας αυτές τις εισαγωγές:
import * as ElementQueries from 'css-element-queries/src/ElementQueries';
import * as ResizeSensor from 'css-element-queries/src/ResizeSensor';
Το Atom εξακολουθεί να δίνει προειδοποιήσεις πληροφόρησης ότι δεν μπορεί να βρει ένα αρχείο δήλωσης, αλλά εξακολουθεί να λειτουργεί. Ελπίζω να βοηθάει!
