Скомпилируйте node.js с помощью Google Closure

У меня проблема с Google Closure Compiler. Я хочу скомпилировать код NodeJS, но кажется, что у Google CC есть некоторые проблемы с требованием.

Один пример:

'use strict';

var moment = require('moment');
var crypto = require('crypto');
moment.locale('fr');

//TEMP CONFIG
var oddsProb = 0.85;


class Match {

    constructor(game, date, t1, p1, t2, p2){
        this._isLive = false;
        this.t1 = t1;
        this.t2 = t2;
        this.p1 = p1;
        this.p2 = p2;
        this.p0 = 100-p1-p2;
        this.o1 = (p1==0?0:(oddsProb*100/p1)).toFixed(2);
        this.o2 = (p2==0?0:(oddsProb*100/p2)).toFixed(2);
        this.o0 = (this.p0==0?0:(oddsProb*100/this.p0)).toFixed(2);
        this.date = moment(date);
        this.gameType = game;
        this.fromNowString = this.date.fromNow();
        this._hashCode = crypto.createHash('md5').update(t1+t2+this.date.format("YMMDD")+this.gameType).digest("hex");
        //Validation date
        if(moment().isBefore(date)){
            this._isLive = true;
        }
    }

    serialize(){
        return {
            _id: this._hashCode.substring(0,24),
            date: this.date.valueOf(),
            t1: this.t1,
            p1: this.p1,
            t2: this.t2,
            p2: this.p2,
            p0: this.p0,
            o1: this.o1,
            o2: this.o2,
            o0: this.o0,
            gameType: this.gameType
        }
    }

    static deserialize(s){
        return new Match(s.gameType, moment(s.date), s.t1, s.p1, s.t2, s.p2);
    }

    isLive(){
        return this._isLive;
    }
}

module.exports = Match;

И в другом файле:

var Match = require('./match');

Google CC выдает мне эту ошибку: ERROR - Variable Match first declared in /src/public/routes.js

Мой глоток:

var gulp = require('gulp');
var source = './src'; // dossier de travail
var destination = './dist'; // dossier à livrer
var closureCompiler = require('google-closure-compiler').gulp();


gulp.task('js-compile', function () {
    return gulp.src(source+'/**/*.js', {base: source})
        .pipe(closureCompiler({
            compilation_level: 'SIMPLE',
            warning_level: 'VERBOSE',
            js_output_file: 'output.min.js'
        }))
        .pipe(gulp.dest(destination));
});

Есть идеи? Благодарю вас!


person izanagi_1995    schedule 18.07.2016    source источник
comment
Почему вы пытаетесь использовать компилятор Closure на JS, предназначенный для работы на NodeJS?   -  person Quentin    schedule 18.07.2016
comment
Я хочу сократить и оптимизировать свой код. Я не прав?   -  person izanagi_1995    schedule 18.07.2016
comment
Почему вы хотите его уменьшить? Каким образом вы хотите его оптимизировать? Обычно люди делают это, чтобы быстрее отправить его по сети. Код не отправляется по сети, он выполняется на сервере.   -  person Quentin    schedule 18.07.2016
comment
Да, я больше думал о сокращении времени выполнения. Неправильный? РЕДАКТИРОВАТЬ: увидел, что Google Closure Compiler также оптимизирует код   -  person izanagi_1995    schedule 18.07.2016
comment
@Quentin The Closure Compiler – это инструмент, позволяющий загружать и запускать JavaScript быстрее разработчикам. .google.com/close/compiler   -  person Tom    schedule 18.07.2016
comment
Основным вариантом использования Closure-Compiler в коде nodejs является статический анализ, включая проверку типов. В настоящее время он плохо работает с кодом стиля nodejs.   -  person Chad Killingsworth    schedule 18.07.2016
comment
В настоящее время он плохо работает с кодом стиля nodejs - это неправильно. Я широко использую его в Electron с Node.js.   -  person AndroidDev    schedule 29.03.2019