6

Zmarnowałem za dużo czasu. Poproszę o pomoc tutaj.Grunt require nie może utworzyć wielu modułów zgodnie z oczekiwaniami.

Mam strukturę jak

  • aplikacja
    • skryptów
      • libs
        • jquery.js
        • bootstrap.js
        • moment.js
      • app.js
      • vendor.js
      • common.js
      • app.config.js
      • main.js #require KONFIGURACJA

Uwaga vendor.js to po prostu plik zawierający wszystkie pliki w bibliotekach. Ex

//vendor.js define(['jquery','bootstrap', 'moment'], function(){});

Wystarczy do listy z zależnościami:

  • app.js zależy common.js i app.config.js
  • common.js zależy vendor.js
  • app.config.js zależy moment.js

Próbuję todo prowadzony jest grunt requirejs polecenie, aby utworzyć plik vendor.js ze wszystkimi plikami pod libs/ i app.js z resztą plików nie ujęte w vendor.js

Oto co moje opcje requirejs wygląda

module.exports = function (grunt) { 
'use strict'; 
var config = { 
    dist: { 
     options: { 
      appDir: 'app/', 
      baseUrl: './scripts', 
      mainConfigFile: 'app/scripts/main.js', 
      dir: 'dist/scripts/', 
      modules: [ 
       { name: 'vendor'}, 
       { name: 'app', exclude: ['vendor'] } 
      ] 
     } 
    } 
}; 
grunt.config('requirejs', config); 

};

Co mam z systemem powyższego jest następujący build.txt

scripts/vendor.js 
---------------- 
scripts/libs/jquery.js 
scripts/libs/bootstrap.js 
scripts/libs/moment.js 
scripts/app.js 
scripts/vendor.js 
scripts/common.js 
scripts/app.config.js 

scripts/app.js 
---------------- 

Jak widać wszystkie pliki są po prostu dołączane do vendor.js a nie app.js. Chciałbym, oprócz vendor.js, aby dołączyć vendor.js i jego zależności. I app.js, aby zawrzeć resztę, ponieważ vendor jest wykluczone.

Każda pomoc lub podpowiedź będzie bardzo doceniana. Próbowałem już wielu kombinacji i nadal jestem tutaj.

+0

Zastanawiasz się, dlaczego używasz pomruku zamiast łyka czy plecaka? Dlaczego nie używasz częściej używanych struktur dla plików pomrukowych? – Pytth

+0

@Pytth istniejący kod, struktura, którą mógłbym zmienić, ale wolałbym, żeby to działało z minimalną zmianą zanim zaktualizuję coś ważnego. Doceń człowieka komentarz. – dchhetri

+0

Np człowiek! czy to twój cały pomruk? – Pytth

Odpowiedz

1

Znaleźliśmy problem!Problem polegał na tym, że potrzebowałem pliku konfiguracyjnego, który jest podawany do zadania wymuszenia. Wymagany plik konfiguracyjny miał kod deps: ['app'], który kolidował przy próbie podziału na moduły, ponieważ gdy tylko wymagana konfiguracja została przesłana do zadania chęci wymuszenia, widziała aplikację jako niezbędną zależność, co oznaczało, że aplikacja i wszystkie jej pliki zostały oznaczone jako zależne i tym samym zawarte w pierwszym pliku modułu na liście.