From bc69e1624b2551d805083fcb86de8c6b08714b50 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 12 Jan 2016 15:41:26 -0800 Subject: [PATCH 1/2] Don't rely on compile cache in babel compilation specs --- spec/babel-spec.coffee | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/babel-spec.coffee b/spec/babel-spec.coffee index caaaed9f2..e913a7939 100644 --- a/spec/babel-spec.coffee +++ b/spec/babel-spec.coffee @@ -1,4 +1,21 @@ +path = require('path') +temp = require('temp').track() +CompileCache = require('../src/compile-cache') + describe "Babel transpiler support", -> + originalCacheDir = null + + beforeEach -> + originalCacheDir = CompileCache.getCacheDirectory() + CompileCache.setCacheDirectory(temp.mkdirSync('compile-cache')) + for cacheKey in Object.keys(require.cache) + if cacheKey.startsWith(path.join(__dirname, 'fixtures', 'babel')) + console.log('deleting', cacheKey) + delete require.cache[cacheKey] + + afterEach -> + CompileCache.setCacheDirectory(originalCacheDir) + describe 'when a .js file starts with /** @babel */;', -> it "transpiles it using babel", -> transpiled = require('./fixtures/babel/babel-comment.js') From 680e123f880368bf91d8c0b3c85e79348de33b58 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 12 Jan 2016 15:42:44 -0800 Subject: [PATCH 2/2] Prevent babel from logging to stderr --- spec/babel-spec.coffee | 14 ++++++++++++++ src/babel.js | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/spec/babel-spec.coffee b/spec/babel-spec.coffee index e913a7939..3c4a4fe4b 100644 --- a/spec/babel-spec.coffee +++ b/spec/babel-spec.coffee @@ -1,3 +1,8 @@ +# Users may have this environment variable set. Currently, it causes babel to +# log to stderr, which causes errors on Windows. +# See https://github.com/atom/electron/issues/2033 +process.env.DEBUG='*' + path = require('path') temp = require('temp').track() CompileCache = require('../src/compile-cache') @@ -34,3 +39,12 @@ describe "Babel transpiler support", -> describe "when a .js file does not start with 'use babel';", -> it "does not transpile it using babel", -> expect(-> require('./fixtures/babel/invalid.js')).toThrow() + + it "does not try to log to stdout or stderr while parsing the file", -> + spyOn(process.stderr, 'write') + spyOn(process.stdout, 'write') + + transpiled = require('./fixtures/babel/babel-double-quotes.js') + + expect(process.stdout.write).not.toHaveBeenCalled() + expect(process.stderr.write).not.toHaveBeenCalled() diff --git a/src/babel.js b/src/babel.js index f53dbc758..1f450ff96 100644 --- a/src/babel.js +++ b/src/babel.js @@ -42,6 +42,10 @@ exports.getCachePath = function (sourceCode) { exports.compile = function (sourceCode, filePath) { if (!babel) { babel = require('babel-core') + var Logger = require('babel-core/lib/transformation/file/logger') + var noop = function () {} + Logger.prototype.debug = noop + Logger.prototype.verbose = noop } var options = {filename: filePath}