web-dev-qa-db-fra.com

Comment utiliser npm installé requireJS pour le navigateur

Alors que requirejs est capable d'utiliser modules installés par npm , comment utiliser requirejs en premier lieu si lui-même est installé via npm install requirejs?

J'ai lu des exemples d'utilisation de requirejs répertoriés dans exemple-section . Ils semblent tous supposer que require.js est téléchargé dans un emplacement spécifique. Depuis le documentation dit spécifiquement

ne faites pas quelque chose comme require ("./ node_modules/foo/foo").

Je suppose que ce n'est pas juste de mettre index.html quelque chose comme:

<html>
    <head>
        <script data-main="scripts" src="node_modules/requirejs/require.js"></script>
    </head>
    <body>
        <h1>Hello World</h1>
    </body>
</html>

Quelle est la méthode recommandée pour utiliser requirejs s'il est installé sur npm? Si j'ai oublié quelque chose dans la documentation, faites-le moi savoir. Je vous remercie

26
user2829759

Il semble que vous confondiez un tas d'utilisations différentes de RequireJS:

  1. Comment pouvez-vous utiliser un RequireJS installé via Node dans le navigateur?

    Vous pouvez simplement l'installer avec npm install requirejs, Puis votre fichier HTML a un élément script qui pointe vers node_modules/requirejs/require.js. Exactement comme vous le montrez dans votre extrait de code. C'est tout ce qu'on peut en dire. Cela étant dit, je n'aime pas avoir node_modules Dans ce que je déploie, donc j'ai généralement ma copie de processus de construction require.js Ailleurs.

  2. Comment pouvez-vous charger des modules installés par npm avec RequireJS dans le nœud?

    Supposons que sans RequireJS vous chargiez le module foo en faisant require('foo'). Vous installez RequireJS et le chargez en tant que requirejs. Comment chargez-vous foo à l'aide de RequireJS? Vous pouvez simplement faire requirejs('foo'). Tant que RequireJS ne le trouvera pas dans sa propre configuration, il émettra en dernier recours un appel au require de Node, et le chargera-t-il de cette façon? Voici une illustration. Installez RequireJS avec npm install requirejs. Créez ce fichier:

    var requirejs = require("requirejs");
    
    var fs = requirejs("fs");
    console.log(fs);
    

    Ensuite, lancez-le. Vous obtiendrez le module fs du Node de la console.

  3. Comment charger des modules installés sur npm avec RequireJS dans un navigateur?

    Cela dépend des modules. RequireJS ne contient pas de code qui fera magiquement fonctionner un module installé par npm dans le navigateur. Cela dépend finalement de la structure des modules. Certains cas:

    A. Certains modules installés par npm peuvent être chargés avec RequireJS sans modification. Il y a une bibliothèque que j'ai créée qui est distribuée via npm et qui est pourtant une collection de modules AMD. Il est trivial de les charger avec RequireJS dans le navigateur.

    B. Il peut nécessiter d'être enveloppé dans des appels define. J'ai récemment chargé merge-options dans l'un de mes projets avec gulp-wrap-AMD . merge-options Est un module CommonJS. Il ne prend pas en charge RequireJS prêt à l'emploi, mais si vous l'encapsulez avec un appel define, cela fonctionnera.

    C. Il peut nécessiter quelque chose de plus complexe avant d'être chargé dans un navigateur. Par exemple, si un module s'appuie sur le module fs de Node, vous devrez fournir un remplacement pour fs qui s'exécute dans un navigateur. Il présentera vraisemblablement un faux système de fichiers dans votre code.

16
Louis