使用Grunt-babelify-browserify而不导入节点模块

时间:2016-03-24 16:57:37

标签: node.js gruntjs npm browserify grunt-browserify

我正在使用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"]);
};

1 个答案:

答案 0 :(得分:1)

好吧,如果您只想要ES6到ES5的功能而不将文件合并到一个包中,最简单的方法就是单独使用Babel而不是Babelify和Browserify。

Babel是Browserify的Babelify转换背后的工具。

但是,我应该注意,ES6的许多功能都是already supported by node.js,因此您可以在没有Babel或Browserify的情况下运行脚本进行本地测试。