Закрытие Google — импорт устаревшего класса в класс модуля ES6

#javascript #google-closure-compiler #google-closure #google-closure-library

#javascript #google-закрытие-компилятор #google-закрытие #google-закрытие-библиотека

Вопрос:

У меня есть база кода, написанная с использованием ES5, и я хочу обновить только часть кода до ES6 с помощью модулей. Это код, который у меня есть:

 goog.module('farm.animal.Cow');

// Legacy class using es5
var Animal = goog.require('namespace.Animal');

class Cow extends Animal {
  constructor() {
    super();
  }
}

exports = Cow;
  

и это устаревший класс

 goog.provide('namespace.Animal');

namespace.Animal = function() {

};
  

Я пытался следовать рекомендациям по миграции на вики GitHub обоих проектов:

https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.предоставить

https://github.com/google/closure-compiler/wiki/Migrating-from-goog.modules-to-ES6-modules

но пока безуспешно. Большую часть времени я получаю следующую ошибку:

 depstree.NamespaceNotFoundError: Namespace "namespace.Animal" never provided.
  

У кого-нибудь есть какие-либо идеи о том, каким должен быть правильный способ переноса кода? Что я делаю не так?

Комментарии:

1. Никто не использует закрытие Google, и вы не должны. Мир движется вперед, и некоторые технологии со временем умирают, в то время как некоторые другие продолжают жить. Закрытие Google по-прежнему используется и обновляется самим Google, но, вероятно, больше никем.

2. Даже несмотря на то, что закрытие Google может быть не лучшим выбором в 2019 году, если вы хотите писать новый код, это не означает, что в нем не существует устаревших кодовых баз, написанных на нем! Это не означает, что этот вопрос недействителен.

3. @evilReiko неправда, каждое отдельное приложение Clojurescript использует его под капотом.

4. @evilReiko Я понимаю причину популярности, но, насколько я знаю, пока ничто не предлагает такой сложной оптимизации, как закрытие Google, поэтому, хотя это и не популярно, но должно быть, или должно появиться что-то столь же хорошее.