2016-07-05 9 views
0

Ich habe eine Knoten-Anwendung, wo der Code nach Feature in ihren eigenen Verzeichnissen strukturiert ist. Ich verwende Grunt, um alle diese Dateien miteinander zu verketten. Wie sollte ich dies tun, ohne die Pfade zu irgendwelchen Abhängigkeiten zu unterbrechen? HierVerketten von Dateien aus mehreren Verzeichnissen mit Grunt

ist ein Beispiel Projektstruktur:

index.js 
config/ 
    database.js 
    auth.js 
feature1/ 
    routes.js 
    functions.js 
feature2/ 
    routes.js 
    functions.js 

Pfade verwendet werden, in index.js, beispiels require('./config/database'); so, wenn ich sie verketten (z.B. dist/scripts.min.js) Ich erhalte Fehler, weil die ./config/database.js Datei nicht existiert. Wie soll ich damit umgehen und hier sogar den richtigen Ansatz verketten?

Antwort

0

Struktur Folder:

/MyApp 
    /dist 
    /src 
     /folder1 
      file.js 
     /folder2 
      file.js 
    Gruntfile.js 

Gruntfile.js

'use strict' 
module.exports = function(grunt) { 

    require('load-grunt-tasks')(grunt) 

    grunt.initConfig({ 
     concat: { 
      options: { 
      }, 
      dist: { 
       src: ['src/*/*.js'], 
       dest: 'dist/built.js', 
      } 
     }, 
    }); 

    grunt.registerTask('default', ["concat"]); 

} 

Dadurch werden alle Dateien in/src dir, in einer einzigen Datei in alle Ordner an: /dist/built.js

+0

Ich bekomme immer noch das gleiche Problem. Wenn ich 'node dist/built.js' starte, erhalte ich den Fehler" Modul nicht gefunden ", da folder1/file1.js andere Module importiert, z. 'require ('../ folder2/file.js');' und der Pfad ist nicht gültig von dist/built.js –

+0

Könnten Sie einen vollständigen Fehler posten und ein Beispiel Ihrer .js-Datei teilen, damit ich Ihnen weiterhelfen kann? – DmitryK

+0

Ich habe hier eine wirklich einfache Web-App mit nur 2 JS-Dateien, die einander erfordern. https://www.dropbox.com/s/y3hvkfv2ae9e8pg/grunt_so.zip?dl=0 Der Fehler ist Fehler: Kann Modul './env' nicht finden –

Verwandte Themen