На следующем веб-сайте есть правильный способ поместить библиотеку в представление.
https://caolan.org/posts/commonjs_modules_in_couchdb.html
Вот новый пример для вымышленного языка, который основан на рабочем.
{
"_id": "_design/example",
"language": "customlang",
"views": {
"lib": {
"math": "pi = 3.14"
},
"map_everything_to_pi": {
"map": "imports math; pi"
}
}
}
Моя проблема возникла из-за того, что я не смог сохранить проектный документ, когда у меня был код в функции карты, зависящей от библиотеки.
Благодаря настройке функции карты, чтобы она не зависела от библиотекиТеперь я смог сохранить документ и после запроса представления я стал свидетелем того, как сообщение add_lib было отправлено на сервер запросов.
В CouchhDB 2.2.0 add_lib отправляется, когда представление запрашивается, но несразу после сохранения проектного документа, где вызывается add_fun.На мой взгляд, add_lib должен вызываться раньше для каждой библиотеки перед тем, как CouchDB отправит сообщения add_fun.
Этот факт делает невозможным для add_fun оценку / прекомпиляцию кода, поскольку библиотека еще не известна.add_lib должен успешно завершиться, чтобы проектный документ был сохранен, поэтому проектный документ невозможно сохранить.
Возможно, мне нужно поднять проблему с трекером ошибок.