我正在使用webdriver.io编写自动化测试。我使用grunt / babelify / browserify,以便我可以在ES6中编写测试。我的脚本中需要一些节点模块。我希望能够不将这些节点文件编译到我的分发脚本中,但只是打印出require语句,因为我还在运行脚本服务器端。换句话说,有没有办法随身携带代码"按原样#34;用browserify?以下是我要求的模块:
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);
这是我的咕噜文件:
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"]);
};
答案 0 :(得分:1)
好吧,如果您只想要ES6到ES5的功能而不将文件合并到一个包中,最简单的方法就是单独使用Babel而不是Babelify和Browserify。
Babel是Browserify的Babelify转换背后的工具。
但是,我应该注意,ES6的许多功能都是already supported by node.js,因此您可以在没有Babel或Browserify的情况下运行脚本进行本地测试。