#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-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, поэтому, хотя это и не популярно, но должно быть, или должно появиться что-то столь же хорошее.