Как настроить веб-пакет для запроса связанных модулей вместо исходных файлов? - PullRequest
0 голосов
/ 16 апреля 2019

Я создаю пакет и хочу связать 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?

...