2 Stimmen

Die Optimierung des RequireJS-Text-Plugins löst einen Fehler aus

Mein Projekt verwendet das Text-Plugin für requirejs, und obwohl das Plugin richtig funktioniert, funktioniert der Optimierer nicht. Dies ist ein Test meiner Anwendungsdatei:

define([
    'jquery', 
    'underscore',
    //'ui/js/form/LoginForm'
    'text!core/ui/text/form/LoginForm.txt'
], function($, _, template) {
    var initialize = function() {

    }

    return {
        initialize : initialize
    };
});

Dies ist die Konfiguration:

require.config({
    paths : {
        jquery      : 'lib/jquery/jquery',
        underscore  : 'lib/underscore/underscore',
        text        : 'lib/require/text'
    },
    shim: {
        underscore: {
            exports: '_'
        }
    }
});

require([
    'app', 
], function(App) {
    App.initialize();
});

Und das ist die Build-Konfiguration:

({
    baseUrl: '../scripts',
    mainConfigFile: '../scripts/main.js',
    name: '../scripts/main',
    out: '../scripts/concatenated-modules.js',
    optimize: 'none',
    optimizeAllPluginResources: true
})

Ich weiß zweifelsfrei, dass die Pfade im Projekt korrekt sind, da die Anwendung selbst funktioniert. Beim Erstellen erhalte ich jedoch Folgendes:

C:\wamp\www\build>java -classpath js.jar org.mozilla.javascript.too
ls.shell.Main r.js -o build.js

Tracing dependencies for: ../scripts/main
InternalError: The choice of Java constructor append matching JavaScript argumen
t types (null) is ambiguous; candidate constructors are:
    class java.lang.AbstractStringBuilder append(java.lang.StringBuffer)
    class java.lang.AbstractStringBuilder append(java.lang.String)
    class java.lang.AbstractStringBuilder append(java.lang.Object)
    class java.lang.AbstractStringBuilder append(java.lang.CharSequence)
    class java.lang.AbstractStringBuilder append(char[]) (r.js#21883(eval)#307)
In module tree:
    ../scripts/main
      app
        text

InternalError: The choice of Java constructor append matching JavaScript argumen
t types (null) is ambiguous; candidate constructors are:
    class java.lang.AbstractStringBuilder append(java.lang.StringBuffer)
    class java.lang.AbstractStringBuilder append(java.lang.String)
    class java.lang.AbstractStringBuilder append(java.lang.Object)
    class java.lang.AbstractStringBuilder append(java.lang.CharSequence)
    class java.lang.AbstractStringBuilder append(char[]) (r.js#21883(eval)#307)
In module tree:
    ../scripts/main
      app
        text

Meine Vermutung ist, dass der Optimierer nicht in der Lage war zu erkennen, dass die 'text!core/ui/text/form/LoginForm.txt' Text-Abhängigkeit ein Plugin verwendet.

Was ich wollte, war Inline-Ressourcen, ich habe nach den Tutorials auf den Buchstaben und ich habe alle die neuesten Versionen aller Bibliotheken.

2voto

Flosculus Punkte 6884

Es scheint, dass das Rhino-Tool Probleme hat, das text!-Plugin beim Kompilieren mit r.js zu verstehen

Ich bin zu Node gewechselt und alles funktioniert perfekt.

Für andere, die das gleiche Problem haben, gehen Sie einfach auf die nodejs-Website und laden Sie das Windows-Installationsprogramm herunter (ich verwende Windows). Nach der Installation starten Sie Ihren Computer neu, und Sie können node r.js -o app.build.js wie auf der requirejs-Website erklärt.

0voto

Sudhir Punkte 1

Es gibt ein Problem in Rihno für das Text-Plugin. Ihre Datei 'core/ui/text/form/LoginForm.txt' sollte nicht leer sein. Fügen Sie eine beliebige Zeichenkette in diese Textdatei ein und sie wird ausgeführt. In Rhino wird bei der Verwendung des Text-Plugins leerer Text als "null" interpretiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X