CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Angular2 & typescript: import de module externe

dark_drow
dark_drow
Niveau 15
27 février 2017 à 17:22:14

Salut,

Je galère un peu pour installer les lib externes et les modules externe sur angular2.
Pour le moment pour les libs externes j'inclue la reference dans mon fichier html mais pour les components je n'ai aucune idée de comment ça marche...

J'ai essayé

npm install ComponentA

Dans mon fichier typescript :

import {Component} from 'ComponentA';

mais j'ai l'erreur : "TS2307: cannot find module ComponentA"

Est-ce que quelqu'un saurait m'indiquer comment m'en sortir ?

Tacha-tepoilu
Tacha-tepoilu
Niveau 12
03 mars 2017 à 06:49:38

Il faut que ton module ait un fichier avec les dépendances dedans (généralement "index.d.ts"), s'il n'y est pas dans le module de base, faut chercher chez @types, c'est un compte npm qui publie les dépendances de beaucoup de modules.

Du coup faut faire
npm install ComponentA @types/ComponentA
S'il n'y est pas faut utiliser le CLI Typings (ancienne version de @types)

dark_drow
dark_drow
Niveau 15
03 mars 2017 à 11:05:53

je vais essayer ça : )
j'ai installé 3 dépendances externes et les 3 me posent des problèmes ^^'
Entre les imports Typescript et les fichiers systemjs ... :/

Tacha-tepoilu
Tacha-tepoilu
Niveau 12
03 mars 2017 à 13:54:19

Quel est le nom de ta dépendance ?

dark_drow
dark_drow
Niveau 15
05 mars 2017 à 11:04:20

https://github.com/wannabegeek/ng2-split-pane/
https://github.com/maxisam/ngx-clipboard (qui necessite https://clipboardjs.com/)

la première dépendance me pose un peu soucis pour l'import, la 3e plante quand je bundle/minifie mon app avec systemjs builder ou browserify...

Tacha-tepoilu
Tacha-tepoilu
Niveau 12
05 mars 2017 à 11:57:49

Je comprends pas très bien le gros problème: tu n'arrives pas à importer tes modules ou tu n'arrives pas à les mettre ensemble en un seul fichier ?

Sur le site officiel de Typescript ils utilisent webpack, à voir si ça peut répondre à ton problème.

dark_drow
dark_drow
Niveau 15
06 mars 2017 à 09:40:30

pour bg2-split-pane actuellement en faisant un npm install et en important "ng2-split-pane" (comme en Node par exemple) ça ne fonctionne pas, par contre je peux m'en sortir en faitsant
import {SplitPaneModule} from '../../node_modules/ng2-split-pane/lib/ng2-split-pane'; mais pas sûr que ça soit une très bonne pratique...

Pour la lib ngx-clipboard ça s'est bien passé à l'install sauf pour bundler le tout :(
Pour web pack je connais pas trop (je suis un peu perdu avec tout les outils JS là) mais angular2 utilise systemJS je crois que c'est l'équivalent ?

gromouton
gromouton
Niveau 6
08 mars 2017 à 00:32:55

Normalement on n'inclut pas les réf directement dans son fichier html (moche), c'est webpack qui se charge de ça ou systemJS

si tu es passé par : ng g new monProjet
tout ce que tu as à faire c'est un npm
tu dois ensuite importer le module soit dans ton module root où dans celui dans lequel tu veux l'utiliser
import {SplitPaneModule} from 'ng2-split-pane/lib/ng2-split-pane';

si ça ne marche pas essaye ça :
import { SplitPaneModule } from 'ng2-split-pane';
une fois que tu as fait cela, tu dois l'ajouter aux imports de modules

@NgModule({
imports: [ BrowserModule, SplitPaneModule ],
declarations: [ ...],
bootstrap: [ .... ]
})

le premier est un import es6 le second est un import ng2

Message édité le 08 mars 2017 à 00:35:39 par gromouton
dark_drow
dark_drow
Niveau 15
08 mars 2017 à 14:30:29

effectivement import {SplitPaneModule} from 'ng2-split-pane/lib/ng2-split-pane'; ça marche bien :)
Après j'avais suivis un tuto jusqu'a maintenant et ça marchait parfaitement sans trop me poser de questions. Mais au fur et à mesure que je dois ajouter des lib externes et déployer mon App je commence à comprendre la chaine de compilation qui est quand même pas triviale.

Pour les libs externes je crois que je m'en suis sortit avec systemjs, et pour certain module externe j'avais des soucis de compilation typescript, il faut que j'harmonise la compilation typescript en es5/commonjs pour que ma chaine marche correctement... (sans webpack)

Message édité le 08 mars 2017 à 14:33:01 par dark_drow
Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment