diff --git a/plugins/c9.ide.language.javascript.eslint/worker/eslint_worker.js b/plugins/c9.ide.language.javascript.eslint/worker/eslint_worker.js index 6ba2a99d..9c453522 100644 --- a/plugins/c9.ide.language.javascript.eslint/worker/eslint_worker.js +++ b/plugins/c9.ide.language.javascript.eslint/worker/eslint_worker.js @@ -7,14 +7,19 @@ define(function(require, exports, module) { var baseLanguageHandler = require('plugins/c9.ide.language/base_handler'); var workerUtil = require('plugins/c9.ide.language/worker_util'); -// var acorn = require("acorn/dist/acorn"); -var Linter = require("./eslint_browserified"); -var linter = new Linter(); +var linter; var handler = module.exports = Object.create(baseLanguageHandler); var util = require("plugins/c9.ide.language/worker_util"); var yaml = require("./js-yaml"); var stripJsonComments = require("./strip-json-comments"); +function loadLinter(callback) { + require(["./eslint_browserified"], function(Linter) { + linter = new Linter(); + callback(); + }); +} + var defaultRules; var defaultEnv = { "browser": false, @@ -132,6 +137,11 @@ handler.handlesLanguage = function(language) { handler.analyze = function(value, ast, options, callback) { if (options.minimalAnalysis) return callback(); + if (!linter) { + return loadLinter(function() { + callback(handler.analyzeSync(value, ast, options.path)); + }); + } callback(handler.analyzeSync(value, ast, options.path)); }; diff --git a/plugins/c9.static/build.js b/plugins/c9.static/build.js index ba19ebb5..dff22a5a 100644 --- a/plugins/c9.static/build.js +++ b/plugins/c9.static/build.js @@ -225,7 +225,7 @@ function main(options, imports, register) { compress: compress, filter: [], ignore: [], - additional: compileForNode && [{ + additional: compileForNode || [{ id: module, noDeps: true }], @@ -304,7 +304,7 @@ function main(options, imports, register) { order: -1000, noRequire: true }], - withRequire: false, + withRequire: true, basepath: pathConfig.root }, callback); }