Как добавить расширение в metro.config.js для Metro Bundler? - PullRequest
3 голосов
/ 03 апреля 2019

Я пытаюсь связать markdown файлы, не создавая больших накладных расходов (т.е. не добавляя их вручную в комплекты ресурсов в Xcode и Android Studio, не используя сторонние зависимости).

Моя идея состояла в том, чтобыПозвольте require() включить их, отрегулировав настройки связки метро в metro.config.js:

/**
 * Metro configuration for React Native
 * https://github.com/facebook/react-native
 *
 * @format
 */

module.exports = {
    transformer: {
        getTransformOptions: async () => ({
            transform: {
                experimentalImportSupport: false,
                inlineRequires: false,
            },
        }),
    },
    resolver: {
        assetExts: [`md`] // < include md
    }
};

К сожалению, связка метро заменяет массив данных по умолчанию на то, что здесь установлено.

Я не хочу явно повторять список расширений активов по умолчанию, который содержит более 20 расширений файлов, тем более что в противном случае я хочу придерживаться значений по умолчанию.См .: https://github.com/facebook/metro/blob/master/packages/metro-config/src/defaults/defaults.js.

Добавление к массиву тоже не работает.

Использование RN 0.59.3.

Что-нибудь, что мне не хватает?

1 Ответ

4 голосов
/ 03 апреля 2019

Нашел ответ о том, как включить значения по умолчанию здесь: https://stackoverflow.com/a/55118654/844907.

/**
 * Metro configuration for React Native
 * https://github.com/facebook/react-native
 *
 * @format
 */

// get defaults assetExts array
const defaultAssetExts = require("metro-config/src/defaults/defaults").assetExts;

module.exports = {
    transformer: {
        getTransformOptions: async () => ({
            transform: {
                experimentalImportSupport: false,
                inlineRequires: false,
            },
        }),
    },
    resolver: {
        assetExts: [
            ...defaultAssetExts, // <- array spreading defaults
            'md'
        ]
    }
};
...