2016-03-24 9 views
1

私はwebdriver.ioで自動テストを書いています。私はgrunt/babelify/browserifyを使っているので、ES6でテストを書くことができます。スクリプト内にいくつかのノードモジュールが必要でした。これらのノードファイルを配布スクリプトにコンパイルすることはできませんが、単にスクリプトサーバー側を実行しているので、単にrequireステートメントをそのまま出力したいと考えています。言い換えれば、ブラウザでコードを「そのまま」コードを引き継ぐ方法はありますか?ここでノードモジュールをインポートせずにGrunt-babelify-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

、あなただけのES6ツーES5の機能が必要な場合は、バンドルにファイルを結合せずに、ここで私が必要としてるのモジュールがあります最も簡単な方法は、BabelifyとBrowserifyではなく、単にBabelを単独で使用することです。

BabelはBrowserifyのBabelifyトランスフォームの背後にあるツールです。

しかし、ES6の多くの機能はalready supported by node.jsであるため、BabelやBrowserifyを使用せずにローカルテスト用にスクリプトを実行することができます。

+0

私は実際にはノードモジュールではなくファイルを結合したいと思っています。 browser requireに、require requireステートメントを無視するように指示する方法はありますか?es6 import/exportステートメントは無視しないでください。 – mags

+0

ok、私はノードがほとんどのes6の機能をサポートしているので、私がやろうとしていることはちょっとばかげていると判断しました。私はちょうど今、不平等な仕事をスキップするつもりです。ありがとう! – mags

+1

@mags問題ありません!しかし、あなたがまだすべてのファイルを結合したいのであれば、それらを一緒に 'cat'して、' grep'を使ってrequire行を削除してください。 – harperj