2012-10-21 22 views
8

W moim pliku grunt.js MamKorzystanie grunt requirejs z wynikami migdałów w „określenie nie jest zdefiniowana”

requirejs: { 
    dist: { 
     options: { 
      almond: true, 
      wrap: true, 
      modules: [{name: 'main'}], 
      mainConfigFile: "src/js/main.js", 
      baseUrl: "src/js", 
      dir: "tmp/js", 
      inlineText: true, 
      preserveLicenseComments: false 
     } 
    } 
} 

Running grunt requirejs:dist zapełnia katalog tmp/js z niektórych minified plików - między innymi duży plik main.js (wszystko wydaje się być powiązane w tym pliku zgodnie z oczekiwaniami) - jednak gdy chcę włączyć ten plik podobnie jak

<script type="text/javascript" src="tmp/main.js"></script> 

skutkuje to "Uncaught ReferenceError: define is not defined"

Intencją przy użyciu migdałów było to, że nie muszę ładować pliku require.js, aby załadować mój plik z opcją - jakikolwiek pomysł, jak to zrobić?

przypis: Ja już udało się zrobić to w ten sposób, chyba że wcześniej plik main-built.js został skompilowany, jednak nie wydaje się być już sprawę (aktualizacje ... -.-)

Odpowiedz

2

Więc próbowałem konfiguracji pusty dir z następujących plików & foldery

/grunt.js 
/src/js/main.js 
/tmp/js 

Oto moje grunt.js:

module.exports = function(grunt) { 

    grunt.loadNpmTasks("grunt-requirejs"); 
    grunt.initConfig({ 
     requirejs: { 
      dist: { 
       options: { 
        almond: true, 
        wrap: true, 
        modules: [{name: 'main'}], 
        mainConfigFile: "src/js/main.js", 
        baseUrl: "src/js", 
        dir: "tmp/js", 
        inlineText: true, 
        preserveLicenseComments: false 
       } 
      } 
     } 
    }); 

    grunt.registerTask("default", "requirejs"); 
}; 

Oto mój main.js:

define(function() { 
    console.log('hi'); 
}); 

Pobiegłem te polecenia w konsoli:

npm install grunt 
npm install requirejs 
npm install grunt-requirejs 
grunt --gruntfile grunt.js 

wyjście tej Grunt:

Running "requirejs:dist" (requirejs) task 
>> RequireJS optimizer finished 
Uncompressed size: 14234 bytes. 
Compressed size: 1265 bytes gzipped. (2633 bytes minified) 

Powstały plik w/tmp/js/main.js miał referencje do migdałów. Nie wspomniano o funkcji define, ponieważ js został zminimalizowany. Moje połączenie z define( zostało przepisane na n(.

Podejrzewam, że możesz mieć kod poza zminimalizowanym plikiem, który wywołuje definicja.

Również w moim drugim projekcie mój mainConfigFile jest odwoływany jako plik konfiguracyjny i nie jest ładowany jako moduł.

+0

obecnie nie korzystam już z require.js, ale postaram się zrealizować Twoje sugestie, gdy tylko znów będę miał do nich dostęp - dziękuję za odpowiedź :) – Peter