Я создаю пакет и хочу связать knex
, а также файлы миграции.
Распространенная проблема при попытке это вызвано knex/lib/migrate/sources
, где есть некоторые динамические требования. После прочтения предложений здесь я придумал следующую конфигурацию:
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: './src/index.js',
target: 'node',
output: {
path: path.resolve(__dirname, 'build'),
filename: 'index.js',
},
resolve: {
extensions: ['.js'],
},
plugins: [
// usage of webpack.IgnorePlugin removed for brevity
// The relevant part
new webpack.ContextReplacementPlugin(
/knex\/lib\/migrate\/sources/,
`${path.join(path.resolve('./'), 'src/migrations')}`,
),
],
};
Мои миграции расположены в /src/migrations
, и я ожидаю, что они будут объединены в файл build/index.js
. На самом деле я проверил полученную index.js
и вижу, что мои файлы миграции были связаны.
Я хочу использовать встроенный скрипт в качестве автономного скрипта, но после удаления папки src
я получаю эту ошибку во время выполнения: Unhandled rejection Error: ENOENT: no such file or directory, scandir '/workdir/packages/migrator/src/migrations'
Я не понимаю, почему build/index.js
ищет файлы в папке src
, потому что они являются частью пакета.
Как я могу сказать веб-пакету не заглядывать в папку src
?