2016-03-24 11 views
1

Ich schreibe automatisierte Tests mit webdriver.io. Ich verwende grunt/babelify/browserify, damit ich die Tests in ES6 schreiben kann. Ich habe einige Knotenmodule in meinem Skript benötigt. Ich möchte in der Lage sein, diese Knotendateien NICHT in mein Verteilungsskript zu kompilieren, sondern einfach die require-Anweisungen auszudrucken, da ich immer noch den Skriptserver betreibe. Mit anderen Worten, gibt es eine Möglichkeit, Code "wie besehen" mit browserify zu übertragen? Hier sind die Module ich erfordern:Verwenden von Grunt-babelify-browserify ohne Importieren von Knotenmodulen

required libraries 
var webdriverio = require('webdriverio'); 
var chai = require("chai"); 
chai.config.includeStack = true; // prints out full call stack 
var expect = chai.expect; 
var chaiAsPromised = require("chai-as-promised"); 
chai.use(chaiAsPromised); 

Hier ist meine Grunzen-Datei:

module.exports = function (grunt) { 
grunt.initConfig({ 
    browserify: { 
    dist: { 
     options: { 
      transform: [ 
       ["babelify", { 
       loose: "all" 
       }] 
      ] 
     }, 
     files: { 
      // if the source file has an extension of es6 then 
      // we change the name of the source file accordingly. 
      // The result file's extension is always .js 
      "./dist/module.js": ["./modules/*"] 
     } 
    } 
    }, 
    watch: { 
    scripts: { 
     files: ["./modules/*/*.js"], 
     tasks: ["browserify"] 
    } 
    } 
}); 

grunt.loadNpmTasks("grunt-browserify"); 
grunt.loadNpmTasks("grunt-contrib-watch"); 

grunt.registerTask("watch", ["watch"]); 
grunt.registerTask("build", ["browserify"]); 
}; 

Antwort

1

Nun, wenn Sie wollen einfach nur die ES6-to-ES5-Funktionen, ohne die Dateien zu einem Bündel kombiniert, Der einfachste Weg ist, einfach Babel statt Babelify und Browserify zu verwenden.

Babel ist das Werkzeug hinter der Babelify-Transformation für Browserify.

Ich sollte jedoch beachten, dass viele Funktionen von ES6 sind already supported by node.js, so dass Sie möglicherweise nur in der Lage, Ihr Skript ohne Babel oder Browserify für lokale Tests ausführen.

+0

Ich möchte eigentlich Dateien kombinieren, aber nicht die Knotenmodule. Gibt es eine Möglichkeit zu sagen, dass browserify die node require-Anweisungen ignoriert, aber nicht die es6-import/export-Anweisungen? – mags

+0

ok, ich entschied, was ich zu tun versuchte, war ein bisschen albern, da Knoten die meisten ES6-Funktionen unterstützt. Ich werde die Grunt-Aufgaben jetzt einfach überspringen. Vielen Dank! – mags

+1

@mags Kein Problem! Aber als eine Idee, wenn Sie immer noch alle Dateien kombinieren möchten, können Sie sie zusammen "cat", und dann verwenden Sie 'grep', um die erforderlichen Zeilen zu entfernen. – harperj