У меня есть приложение nuxt
, в которое мне нужно будет добавить данные из сгенерированного файла конфигурации при первом запуске приложения. Причина, по которой я не могу сделать это в реальной сборке, заключается в том, что файл конфигурации на данный момент не существует; он генерируется непосредственно перед вызовом npm start
скриптом начальной загрузки.
Почему я не сгенерировал файл конфигурации перед запуском приложения, вы можете спросить, и это потому, что приложение запускается в Docker-контейнере, и встроенный образ не может включать специфические для среды файлы конфигурации, так как он должен использоваться в различных средах, таких как как тестирование, постановка и производство.
В настоящее время я пытаюсь использовать ловушку для решения этой проблемы, но я не совсем уверен, как на самом деле установить данные конфигурации в приложении, чтобы их можно было использовать везде:
# part of nuxt.config.js
hooks: {
listen(server, listener) {
# load the custom configuration file.
fs.readFile('./config.json', (err, data) => {
let configData = JSON.parse(data));
});
}
},
Приведенная выше ловушка запускается, когда приложение впервые начинает прослушивать подключающихся клиентов. Не уверен, что это лучший или даже возможный путь.
Я также попытался использовать плагин для решения этой проблемы:
import axios from ‘axios’;
export default function (ctx, inject) {
// server-side logic
if (ctx.isServer) {
// here I would like to simply use fs.readFile to load the configuration, but this is not working?
} else {
// client-side logic
axios.get(‘/config.json’)
.then((res) => {
inject(‘storeViews’, res.data);
});
}
};
В приведенном выше коде у меня проблемы как с использованием модуля fs
, так и axios
.
Я также думал об использовании промежуточного программного обеспечения для этого, но не знал, как поступить.