Когда я транспилирую машинописный текст с помощью babel, он помещает импорт в верхнюю часть страницы, но переменная должна быть инициализирована до того, как произойдет импорт. - PullRequest
0 голосов
/ 11 июля 2020

Когда я пытаюсь преобразовать этот код с помощью babel:

import admin from 'firebase-admin';

const serviceAccount = require('./.private/app-delivery-dev.json');


admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: 'https://app-delivery-dev.firebaseio.com',
});


import app from './app';

app.listen(3333);

, я получаю следующий результат:

"use strict";

var _firebaseAdmin = _interopRequireDefault(require("firebase-admin"));

var _app = _interopRequireDefault(require("./app"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const serviceAccount = require("./.private/app-delivery-dev.json");

_firebaseAdmin.default.initializeApp({
  credential: _firebaseAdmin.default.credential.cert(serviceAccount),
  databaseURL: 'https://app-delivery-dev.firebaseio.com'
});

_app.default.listen(3333);

Но приложение должно быть импортировано только после инициализируется администратор firebase, иначе он выдаст ошибку « приложение firebase не существует ». Есть ли способ, чтобы babel не менял порядок, в котором появляются операторы импорта?

Это мой конфигурационный файл babel:

module.exports = {
    presets: [
        [
            '@babel/preset-env',
            {
                targets: {
                    node: 'current'
                }
            },
        ],
        '@babel/preset-typescript'
    ],
    plugins: [
        ['module-resolver', {
            alias: {
                '@controller': './src/controllers',
            }
        }]
    ],
    ignore: [
        '**/*.test.ts',
        '**/*.spec.ts',
        './.private/**/*'
    ]
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...