Gulp concat et requiert un chemin

J'ai un problème avec gulp-concat. J'essaie d'expliquer tous mes fichiers js dans un seul fichier, disons, dist / app.js.

Mais il y a quelque chose que je ne comprends pas. Dans ce fichier, mon chemin de fichiers requis est toujours le même qu'avant …

Voici mon gulpfile.js:

var gulp = require("gulp"); var sourcemaps = require("gulp-sourcemaps"); var babel = require("gulp-babel"); var concat = require("gulp-concat"); var resolveDependencies = require("gulp-resolve-dependencies"); gulp.task("default", function () { return gulp.src("client/**/*.js") .pipe(sourcemaps.init()) .pipe(babel()) .pipe(concat("app.js")) .pipe(sourcemaps.write(".")) .pipe(gulp.dest("dist/js")); }); 

Comme vous pouvez le voir, je souhaite concéder des dossiers imbriqués.

Regardez par exemple en haut de mon /client/components/app.js:

 import React, {PropTypes} from 'react'; import AppLeftNav from './AppLeftNav'; import {AppCanvas, AppBar, Styles} from 'material-ui'; //Code here 

Donc, dans mon application app.js généré par gulp, je peux voir:

 var _AppLeftNav = require('./AppLeftNav'); 

C'est un chemin relatif et ça ne peut pas fonctionner.

Alors, quelles sont les astuces pour gérer ces fichiers requis avec un chemin relatif?

Merci beaucoup.

EDIT: voir l'erreur que j'ai:

 Error: Cannot find module './components/App.js' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (MyFolder\dist\js\app.js:34:24) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) 

Pour ceux qui pourraient avoir le même problème. Babel ne supporte actuellement pas les importations indiquant le n ° 1681 , ni le gulp-concat, car il suffit de concaténer des fichiers.

J'ai choisi d'utiliser Rollup pour résoudre de manière appropriée les dépendances et seulement la sortie de transpile:

 var gulp = require('gulp'); var gutil = require('gulp-util'); var babel = require('gulp-babel'); var concat = require('gulp-concat'); var rollup = require('gulp-rollup'); gulp.task('build', function () { return gulp.src('src/parser-factory.js', { read: false }) .pipe(rollup({ external: ['request', 'cheerio'] })) .on('error', gutil.log) .pipe(babel({ stage: 0 })) .pipe(concat('realty-parser.js')) .pipe(gulp.dest('lib')); }); 

Si vous voulez tout obtenir dans un seul fichier, vous devrez écrire .pipe(gulp.dest("dist/js/jsfile.js")); jsfile est le nom de votre fichier.