J'essaie d'intégrer mon projet Angular 7 avec StencilJS pour pouvoir utiliser des composants / éléments Web personnalisés, et je suis le guide d'intégration sur le site Web de StencilJS ici .
Je suis sur les instructions qui disent:
Une collection de composants construite avec Stencil comprend une fonction principale qui est utilisé pour charger les composants dans la collection. Cette fonction s'appelle
defineCustomElements ()
et doit être appelé une fois pendant le bootstrap de votre application. Un endroit pratique pour faire cela est dansmain.ts
en tant que tel:
J'ai essayé d'importer defineCustomElements ()
dans mon fichier main.ts
comme suit:
Mais j'obtiens l'erreur suivante:
[ts] Cannot find module 'test-components/dist/loader'
3 Réponses :
@Kingamere Oui, vous devez d'abord installer le composant Web dans votre projet. Les étapes pour intégrer un composant Web stencil doivent être les suivantes:
npm install
) schémas: [CUSTOM_ELEMENTS_SCHEMA]
) importer * comme depuis 'test-components / dist / loader';)
.defineCustomElements (window);
) J'ai rencontré la même erreur.
Pour moi, je publiais mon composant Web stencil sur npm, puis je l'installais dans mon projet.
J'ai eu le même "module introuvable" lorsque j'ai oublié d'exécuter npm run build
avant npm publish
.
Voici comment je l'ai fait:
$ npm i web-social-share
$ Dans le module d'application / module de fonctionnalité de votre application, ajoutez CUSTOM_ELEMENTS_SCHEMA:
import { defineCustomElements } from 'web-social-share/dist/loader'; ..... defineCustomElements(window);
Puis enfin dans main.ts
@NgModule({ imports: [ ......... ], schemas:[CUSTOM_ELEMENTS_SCHEMA] })
Comment distribuez-vous votre module
test-components
? c'est-à-dire que vous l'avez publié sur npm et l'avez-vous installé dans votre projet Angular? stenciljs.com/docs/…