Как собрать / скомпилировать облачные функции firebase с помощью webpack

Я использую webpack для создания своих облачных функций (несколько причин для этого, например, псевдонимы путей, машинописный текст и некоторые другие конфигурации)

У меня есть свой index.ts файл, а также src папка, содержащая отдельные файлы для каждой функции.

Мой index.ts файл затем экспортирует их вот так

import admin from ‘firebase-admin’; admin.initializeApp(); export const func1 = require(‘./src/func1’).default; export const func2 = require(‘./src/func2’).default;

Проблема с webpack по сравнению с чем-то вроде tsc заключается в том, что он требует весь код из требуемых файлов и объединяет его в индексный файл, что для облачных функций не идеально из-за производительности холодного запуска.

Каким будет правильный способ разбить эти файлы на отдельные и обеспечить хорошую производительность при холодном запуске (т.е. требуется только код для вызываемой функции).

Конфигурация моего веб-пакета для firebase выглядит так

const config = { entry: { index: path.resolve(__dirname, ‘./index.ts’) }, output: { filename: ‘[name].js’, path: path.resolve(__dirname, ‘./dist’), libraryTarget: ‘commonjs’ }, mode: ‘production’, optimization: { nodeEnv: ‘production’, splitChunks: { chunks: ‘all’ }, minimize: true, minimizer: [ new ESBuildMinifyPlugin({ target: ‘es2020’, minifyWhitespace: true, minifyIdentifiers: true, minifySyntax: true }) ] }, resolve: { alias: { $tools: path.resolve(__dirname, ‘../../tools’), $types: path.resolve(__dirname, ‘../../types’) }, extensions: [‘.tsx’, ‘.ts’, ‘.js’, ‘.mjs’, ‘.json’] }, externals: [‘firebase-functions’, ‘firebase-admin’], target: ‘node’, module: { rules: [ { test: /.(m?js|ts)$/u, exclude: /(node_modules)$/u, use: { loader: ‘esbuild-loader’, options: { loader: ‘ts’, target: ‘es2020’, tsconfigRaw: require(‘./tsconfig.json’) } } } ] }, plugins: [new CleanWebpackPlugin(), new ESBuildPlugin()] };

Какая у вас конфигурация веб-пакета?   —  person Ilja    schedule 29.01.2021

@guillaumeblaquiere добавил это в вопрос   —  person Ilja    schedule 30.01.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!