1.1.0 • Published 12 months ago

@tether_toolkit/config v1.1.0

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
12 months ago

@tether_toolkit/config

Это специальный пакет для создания и модификации конфигурации.

Установка

Если вы создаете конфигурацию для своего проекта вручную, то установите пакет, создайте файл webpack.config.ts и выберите один из следующих вариантов.

npm install @tether_toolkit/config

Обзор API

Базовая конфигурация

В большинстве случаев, для проекта достаточно базовой конфигурации, ее можно сгенерировать следующим образом:

import { createConfig } from '@tether_toolkit/config';

export default createConfig(__dirname);

Расширение базовой конфигурации

В некоторых ситуациях, вам может понадобиться точечно изменить конфигурацию, для этого можно использовать утилиту merge из пакета конфигурации:

import { createConfig, merge } from '@tether_toolkit/config';

export default merge(createConfig(__dirname), {
    mode: 'development',
});

Кастомная конфигурация

Если вам нужна полностью своя конфигурация, вы можете использовать функцию satisfies из TypeScript, чтобы иметь поддержку типов.

import webpack from 'webpack';

export default {
    mode: 'production'
} satisfies webpack.Configuration

Пример базовой конфигурации

createConfig создаст конфигурацию с поддержкой встроенных модулей и переменных окружения, если вы создаете конфигурацию вручную, то используйте методы getExternals и getEnvVariables из пакета config, чтобы добавить их поддержку в свою конфигурацию.

export const createConfig = (basePath: string): webpack.Configuration => ({
    entry: getEntryPoint(basePath),
    output: getOutput(basePath),
    mode: 'production',
    module: {
        rules: [
            {
                test: /\.([cm]?ts|tsx)$/,
                loader: 'babel-loader',
            },
        ],
    },
    resolve: {
        alias: {
            '@modules': path.resolve(basePath, 'esp-libs'),
            '~': path.resolve(basePath, 'src'),
        },
        extensions: ['.ts', '.js', '.tsx'],
    },
    externals: getExternals(BUILT_IN_MODULES),
    plugins: [
        new webpack.DefinePlugin(getEnvVariables(path.resolve(basePath, '.env'))),
    ],
    target: ['node', 'es5'],
})
1.1.0

12 months ago

1.0.4

12 months ago

1.0.3

12 months ago