Question

J'utilise R.JS pour optimiser mon application, comme je l'ai vu dans plusieurs échantillons, j'ai utilisé le fichier de configuration build.json pour configurer mes options d'optimisation.

Le problème est que lorsque je définis la référence au fichier javascript de sortie après optimisation, j'obtiens l'erreur suivante dans le navigateur :

Erreur de référence non interceptée :définir n'est pas défini main-built.js:14735

On dirait que tous mes modules d'application existent mais RequireJs est manquant.

Voici mon fichier de configuration build.json :

{
  "baseUrl": "../", 
  "name": "src/modules/main",
  "include": ["src/modules/main", "src/modules/navbar/navbar", "src/modules/contact/contact", "src/modules/about/about"], 
  "exclude": [], "optimize": "none", "out": "main-built.js", 
  "insertRequire": ["src/modules/main"]
}

Comment ajouter requirejs au fichier js de sortie ?peut-être dois-je ajouter autre chose à la configuration ?ou peut-être que le problème ne vient pas de la config ?

Merci, ori

Était-ce utile?

La solution

Essayez:

<script src="scripts/require.js" data-main="scripts/main-built"></script>

Autres conseils

Si je comprenais correctement, c'est ainsi que cela devrait fonctionner.

Qu'est-ce que R.JS est qu'il compile tous les modules requisjs dans un seul fichier.Cependant, vous devez toujours charger ce fichier avec le script requisjs, par exemple:

<script data-main="scripts/main" src="scripts/require.js"></script>

Ajoutez simplement une version minifiée d'exiger.js sur votre site Web et chargez le module optimisé à l'aide de celle-ci.

Vous devez inclure require.js si vous avez modularisé votre projet à l'aide de RequireJS :

<script data-main="scripts/main" src="scripts/require.js"></script>

En effet, RequireJS gère le chargement des modules et la résolution des dépendances.Sans cela, votre navigateur ne sait pas quoi define moyens.Un moyen de contourner ce problème consiste à utiliser l'UMD (Universal Module Definition).Cela permet à votre module d'être utilisé avec ou sans RequireJS.Vous pouvez voir de nombreux exemples ici.Celui qui correspond à votre cas d’utilisation est :

// Uses AMD or browser globals to create a module.

// If you want something that will also work in Node, see returnExports.js
// If you want to support other stricter CommonJS environments,
// or if you need to create a circular dependency, see commonJsStrict.js

// Defines a module "amdWeb" that depends another module called "b".
// Note that the name of the module is implied by the file name. It is best
// if the file name and the exported global have matching names.

// If the 'b' module also uses this type of boilerplate, then
// in the browser, it will create a global .b that is used below.

// If you do not want to support the browser global path, then you
// can remove the `root` use and the passing `this` as the first arg to
// the top function.

(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(['b'], factory);
    } else {
        // Browser globals
        root.amdWeb = factory(root.b);
    }
}(this, function (b) {
    //use b in some fashion.

    // Just return a value to define the module export.
    // This example returns an object, but the module
    // can return a function as the exported value.
    return {};
}));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top