Ich möchte Gulp, Rollup und Babel verwenden, um ES6-Anwendung auf ES5 zu transponieren (die das Modulmuster mit IIFE verwenden).TransPile Model View Controler in Javascript
Die schluck Datei:
var gulp = require('gulp');
var rollup = require('gulp-better-rollup');
var babel = require('rollup-plugin-babel');
gulp.task('roll', function() {
return gulp.src('_01_src/js/form/*.js')
.pipe(rollup(
{plugins: [babel({presets: ['es2015-rollup']})]},
{format: 'iife',}
)
)
.pipe(gulp.dest('_02_build/js/form/'));
});
Der Controller Importmodell und Ansicht und transpiled ok:
var controller = (function (model) {
'use strict';
model = 'default' in model ? model['default'] : model;
var classCallCheck = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
var Cat = function Cat(name) {
classCallCheck(this, Cat);
this.name = name;
};
return Cat;
}(model));
Das Problem, das ich habe, ist, wenn ich zusammenfassen möchten (zur Vermeidung von Kollision) wie das funktioniert nicht:
(function() { var model = function() { ... }()
var view = function() { ... }()
var controller = function (model, view) {
......
}(model, view))}()
Ich habe mehrere App, die MVC enthält und ich möchte zuerst zu grou p und app zusammen als Gruppe alle app; So
ich anfangen:
js
app1
- model.js
- view.js
- controller.js
app2
- model.js
- view.js
- controller.js
app3
- model.js
- view.js
- controller.js
Nach der Task laufen ich haben will, die nicht kollidieren:
js
app1.js
app2.js
app3.js
Ist Webpack eine Option? – mkaatman
Ich möchte kein Webpack verwenden, weil ich IIFE verwenden und das Webpack-Modul Bloat vermeiden möchte. https://nolanlawson.com/2016/08/15/the-cost-of-small-modules/ – user3541631
@ user3541631 - Wenn eine Antwort hilfreich war, nicht vergessen [akzeptieren] (http: //meta.stackexchange. com/a/5235/295067) - Klicken Sie auf das Häkchen ('✓') neben der Antwort, um es von ausgegraut auf ausgefüllt zu setzen. Danke. – jezrael