Knex: рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде knex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп "рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛" рддреНрд░реБрдЯрд┐рдпрд╛рдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдЬрдире░ 2016  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: knex/knex

рдореИрдВ рдЬрд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдореЗрдВ knex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рд╡реЗрдмрдкреИрдХ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдЙрди рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ/рдмреЛрд▓рд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

`````` рд▓реЙрдЧ
./~/mariasql/lib/Client.js . рдореЗрдВ рддреНрд░реБрдЯрд┐
рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛: рддреНрд░реБрдЯрд┐: 'рдлрд╝рд╛рдЗрд▓' рдпрд╛ 'рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛' рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ ../build/Debug/sqlclient ~/project/node_modules/mariasql/lib рдореЗрдВ
@ ./~/mariasql/lib/Client.js 17:10-45

./~/knex/lib/dialects/sqlite3/index.js . рдореЗрдВ рддреНрд░реБрдЯрд┐
рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛: рддреНрд░реБрдЯрд┐: ~/project/node_modules/knex/lib/рдмреЛрд▓рд┐рдпреЛрдВ/sqlite3 рдореЗрдВ рдореЙрдбреНрдпреВрд▓ 'sqlite3' рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
@ ./~/knex/lib/dialects/sqlite3/index.js 33:11-29

./~/knex/lib/dialects/mysql2/index.js . рдореЗрдВ рддреНрд░реБрдЯрд┐
рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛: рддреНрд░реБрдЯрд┐: ~/project/node_modules/knex/lib/рдмреЛрд▓рд┐рдпреЛрдВ/mysql2 рдореЗрдВ рдореЙрдбреНрдпреВрд▓ 'mysql2' рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
@ ./~/knex/lib/dialects/mysql2/index.js 33:11-28

./~/knex/lib/dialects/mysql/index.js . рдореЗрдВ рддреНрд░реБрдЯрд┐
рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛: рддреНрд░реБрдЯрд┐: ~/project/node_modules/knex/lib/рдмреЛрд▓рд┐рдпреЛрдВ/mysql рдореЗрдВ рдореЙрдбреНрдпреВрд▓ 'mysql' рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
@ ./~/knex/lib/dialects/mysql/index.js 35:11-27

./~/knex/lib/dialects/oracle/index.js . рдореЗрдВ рддреНрд░реБрдЯрд┐
рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛: рддреНрд░реБрдЯрд┐: ~/project/node_modules/knex/lib/рдмреЛрд▓рд┐рдпреЛрдВ/рдУрд░реЗрдХрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ 'рдУрд░реЗрдХрд▓' рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
@ ./~/knex/lib/dialects/oracle/index.js 40:11-28

./~/knex/lib/dialects/postgres/index.js . рдореЗрдВ рддреНрд░реБрдЯрд┐
рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛: рддреНрд░реБрдЯрд┐: ~/project/node_modules/knex/lib/рдмреЛрд▓рд┐рдпреЛрдВ/postgres рдореЗрдВ рдореЙрдбреНрдпреВрд▓ 'pg' рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
@ ./~/knex/lib/dialects/postgres/index.js 46:11-24

./~/knex/lib/dialects/postgres/index.js . рдореЗрдВ рддреНрд░реБрдЯрд┐
рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛: рддреНрд░реБрдЯрд┐: ~/рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕/knex/lib/рдмреЛрд▓рд┐рдпреЛрдВ/рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ 'рдкреАрдЬреА-рдХреНрд╡реЗрд░реА-рд╕реНрдЯреНрд░реАрдо' рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
@ ./~/knex/lib/dialects/postgres/index.js 132:50-76

./~/knex/lib/dialects/strong-oracle/index.js рдореЗрдВ рддреНрд░реБрдЯрд┐
рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛: рддреНрд░реБрдЯрд┐: ~/рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕/knex/lib/рдмреЛрд▓рд┐рдпреЛрдВ/рдордЬрдмреВрдд-рдУрд░реЗрдХрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ 'рдордЬрдмреВрдд-рдУрд░реЗрдХрд▓' рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
@ ./~/knex/lib/dialects/strong-oracle/index.js 15:9-33```
``````

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕рдореЗрдВ рднреА рднрд╛рдЧ рдЧрдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;

externals: {
  knex: 'commonjs knex'
}

рд╕рднреА 23 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдореЗрд░реЗ рдмрд╛рд╣рд░реА рд▓реЛрдЧреЛрдВ рдореЗрдВ рд░реЗрдЧреЗрдХреНрд╕ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛:

const commonLoaders = [
  { test: /\.js$/, loader: 'babel', exclude: [/node_modules/] },
  { test: /\.json$/, loader: 'json' },
];

module.exports = [
  {
    name: 'browser',
    entry: './js/entry.js',
    output: {
      path: './build',
      filename: 'bundle.js',
    },
    module: {
      loaders: commonLoaders.concat([
        { test: /\.styl$/, loader: 'style!css!stylus' },
      ]),
    },
  },
  {
    name: 'server',
    entry: './server.js',
    target: 'node',
    output: {
      path: './build',
      filename: 'server.js',
      libraryTarget: 'commonjs2',
    },
    externals: [
      {
        'socket.io': 'socket.io',
      },
      /^[a-z\-0-9]+$/,
    ],
    module: {
      loaders: commonLoaders.concat([
        { test: /\.styl$/, loader: 'css!stylus' },
      ]),
    },
  },
];

+1

@joeketchi node_modules рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдб рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ рдЬреЛ рдЗрд╕реЗ рдЕрдзрд┐рдХ рдмреБрджреНрдзрд┐рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХрд░реЗрдЧрд╛ рдЬреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХрддрд╛ рд╣реИред

рдЗрд╕рдореЗрдВ рднреА рднрд╛рдЧ рдЧрдпрд╛ред рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ node_modules рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдореЗрдВ рднреА рднрд╛рдЧ рдЧрдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;

externals: {
  knex: 'commonjs knex'
}

рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╛рд░рд┐рдпрд╛рд╕реНрдХреНрд▓ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЙрди рд╕рднреА рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдмрд╛рд╣рд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП mysql2 рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдмрд╛рд╣рд░реА рдореЗрдВ рд╣реИ:

  externals: {
    // Possible drivers for knex - we'll ignore them
    'sqlite3': 'sqlite3',
    'mariasql': 'mariasql',
    'mssql': 'mssql',
    'mysql': 'mysql',
    'oracle': 'oracle',
    'strong-oracle': 'strong-oracle',
    'oracledb': 'oracledb',
    'pg': 'pg',
    'pg-query-stream': 'pg-query-stream'
  }

рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ knex рддреНрд░реБрдЯрд┐рдпреЛрдВ рдпрд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдмрдВрдбрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд▓рдЧрддреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ knex рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реБрдП рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рдЬрд╛рдП... рд╡реЗрдмрдкреИрдХ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП knex рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рджреЗрддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рддрдХ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдЕрдирд╕реБрд▓рдЭреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдкреНрд░рд╡рд╛рд╕рди рдФрд░ рдмреАрдЬ рдХреЗ рд╕рд╛рде:

WARNING in ./node_modules/knex/lib/migrate/index.js
342:20-81 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/migrate/index.js
447:18-49 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/seed/index.js
113:13-74 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/seed/index.js
150:11-24 Critical dependency: the request of a dependency is an expression

рдореИрдВ рдЗрдиреНрд╣реЗрдВ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛

@ifullgaz рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ рдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛() рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рдЧрдИ рдереА? https://github.com/webpack/webpack/issues/196

@ifullgaz , рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдиреАрдЪреЗ рдХреА рддрд░рд╣ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдП рдереЗ?

  Error --------------------------------------------------
  Command failed: npm install
gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: spawn EACCES
gyp ERR! stack     at exports._errnoException (util.js:1018:11)
gyp ERR! stack     at ChildProcess.spawn (internal/child_process.js:319:11)
gyp ERR! stack     at exports.spawn (child_process.js:378:9)
gyp ERR! stack     at exports.execFile (child_process.js:143:15)

@brianhuangyl рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ node_modules рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рд╕рднреА ist рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЖрджрд┐ рд╣реИ (рдЖрдкрдиреЗ рдХрд┐рд╕реА рднреА рд╕рдордп рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ npm рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рд╣реИ)?

     [EACCES]       Permission bits of the file mode do not permit the
            requested access, or search permission is denied on a
            component of the path prefix.

@ifullgaz рдореБрдЭреЗ https://www.laurivan.com/make-electron-work-with-knex-js/ рд╕реЗ рд╕реБрдЭрд╛рд╡ рдорд┐рд▓рд╛, рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛:

WARNING in ./node_modules/knex/lib/migrate/index.js
342:20-81 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/migrate/index.js
447:18-49 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/seed/index.js
113:13-74 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/seed/index.js
150:11-24 Critical dependency: the request of a dependency is an expression

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рднрд╛рдЧ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛:

config.plugins = [
  // ...
  new NormalModuleReplacementPlugin(/\.\.\/migrate/, '../util/noop.js'),
  new NormalModuleReplacementPlugin(/\.\.\/seed/, '../util/noop.js'),
];

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЯрд┐рдХрдЯ рдерд╛ libraryTarget: 'commonjs2',

рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреЗрдЦрд╛ рдЬреЛ рд╡реЗрдмрдкреИрдХ рдХреЛ knex рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ require рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧреИрд░-рд╢рд╛рдмреНрджрд┐рдХ require рдХреЛ рдЕрдХреЗрд▓рд╛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рд╕реАрдб рдлрд╛рдЗрд▓реЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЬреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд┐рдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

config.module.rules = [
  {
    include: [
      /knex\/lib\/migrate\/index/,
      /knex\/lib\/seed\/index/
    ],
    loader: 'string-replace-loader',
    options: {
      search: 'require(\\([^\'"])',
      replace: '__non_webpack_require__$1',
      flags: 'g'
    }
  }
];

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдореИрдВ knex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рд╡реЗрдмрдкреИрдХ рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЙрд╕ рдмрдВрдбрд▓ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред @mdlavin рдХреЗ рд╕реБрдЭрд╛рд╡ рдиреЗ рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡реЗрдмрдкреИрдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рдерд╛ рдХрд┐ рдореБрдЭреЗ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╡реЗрдмрдкреИрдХ рдмрдВрдбрд▓ рд╕реЗ рдмреИрдВрдб рд╕реЗ рдмрд╛рд╣рд░ рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рдмреАрдЬреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╡реЗрдмрдкреИрдХ рдХреЗ ContextReplacementPlugin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдПрдХ рдирдореВрдирд╛ рд╣реИ (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ):

plugins: [
  //...
  fs.existsSync(path.join(params.targetPackageFilePath, 'migrations')) && new webpack.ContextReplacementPlugin(
    /knex\/lib\/migrate/,
    '.',
    fs.readdirSync(path.join(params.targetPackageFilePath, 'migrations'))
      .reduce((result, file) => {
        return Object.assign(result, {
          [path.join(params.targetPackageFilePath, 'migrations', file)]: path.relative(
            path.dirname(require.resolve('knex/lib/migrate')),
            path.join(params.targetPackageFilePath, 'migrations', file)
          )
        });
      }, {})),

  fs.existsSync(path.join(params.targetPackageFilePath, 'seeds')) && new webpack.ContextReplacementPlugin(
    /knex\/lib\/seed/,
    '.',
    fs.readdirSync(path.join(params.targetPackageFilePath, 'seeds'))
      .reduce((result, file) => {
        return Object.assign(result, {
          [path.join(params.targetPackageFilePath, 'seeds', file)]: path.relative(
            path.dirname(require.resolve('knex/lib/seed')),
            path.join(params.targetPackageFilePath, 'seeds', file)
          )
        });
      }, {}))
  //...
]

рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ params.targetPackageFiletPath рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрде рд╣реИ рдЬреИрд╕реЗ /Users/yourusername/yourproject ред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЙрд╕ рдкрде рдкрд░ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ migrations рдФрд░ seeds рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ рддреЛ рдкрд░рд┐рдгрд╛рдореА рдкреНрд▓рдЧрдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

  fs.existsSync(path.join(params.targetPackageFilePath, 'migrations')) && new webpack.ContextReplacementPlugin(
    /knex\/lib\/migrate/,
    '.',
    {
      '/Users/yourusername/yourproject/201706261234_migration.ts': '../../../migrations/201706261234_migration.ts'
    }),

  fs.existsSync(path.join(params.targetPackageFilePath, 'seeds')) && new webpack.ContextReplacementPlugin(
    /knex\/lib\/seed/,
    '.',
    {
      '/Users/yourusername/yourproject/seeds/201706261234_first-seed.ts': '../../../seeds/201706261234_first-seed.ts'
    }),

рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ knex рдХрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рд╕реАрдб рдХреЛрдб рдЖрдкрдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рдмреАрдЬреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП require рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ https://github.com/tgriesser/knex/blob/master/ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд░рддреЗ рд╕рдордп рдХреНрдиреЗрдХреНрд╕ рдХреЛ рдЗрди рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рднреВрдорд┐ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдХрд░рдХреЗ?

рд╡реИрд╕реЗ рднреА, рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреЛрдгреАрдп рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрдЭрд╛рд╡?
рдореИрдВ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ (рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЗрд╕реЗ рдХреЛрдгреАрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

ERROR in ./node_modules/knex/lib/dialects/oracle/utils.js Module not found: Error: Can't resolve 'crypto' in '/Users/marudits/Documents/CODE/PROJECT/MOJOMARET/app-member/node_modules/knex/lib/dialects/oracle' ERROR in ./node_modules/knex/lib/dialects/mssql/index.js Module not found: Error: Can't resolve 'mssql/package.json' in '/Users/marudits/Documents/CODE/PROJECT/MOJOMARET/app-member/node_modules/knex/lib/dialects/mssql' ERROR in ./node_modules/knex/lib/runner.js Module not found: Error: Can't resolve 'stream' in '/Users/marudits/Documents/CODE/PROJECT/MOJOMARET/app-member/node_modules/knex/lib' ERROR in ./node_modules/knex/lib/dialects/oracledb/index.js Module not found: Error: Can't resolve 'stream' in '/Users/marudits/Documents/CODE/PROJECT/MOJOMARET/app-member/node_modules/knex/lib/dialects/oracledb'

рдореИрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╣рд╛рдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдХреНрдпрд╛ рдЗрд╕реЗ angular.json рдпрд╛ tsconfig.json рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╡реЗрдмрдкреИрдХ рдореЗрдВ рд╢рд╛рдпрджред

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ ( @ifullgaz рдХреЛ рд╢реНрд░реЗрдп) рдореБрдЭреЗ mysql2.

    externals: {
        // Possible drivers for knex - we'll ignore them
        sqlite3: 'sqlite3',
        mysql2: 'mysql2',
        mariasql: 'mariasql',
        mysql: 'mysql',
        oracle: 'oracle',
        'strong-oracle': 'strong-oracle',
        oracledb: 'oracledb',
        pg: 'pg',
        'pg-query-stream': 'pg-query-stream'
    }

рдлрд┐рд░ рдмрд╕ рдЙрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЗрд╕ рд╕реВрдЪреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╡реЗрдмрдкреИрдХ рдЗрд╕реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдЧрд╛ред

@ifullgaz рдореБрдЭреЗ https://www.laurivan.com/make-electron-work-with-knex-js/ рд╕реЗ рд╕реБрдЭрд╛рд╡ рдорд┐рд▓рд╛, рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛:

WARNING in ./node_modules/knex/lib/migrate/index.js
342:20-81 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/migrate/index.js
447:18-49 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/seed/index.js
113:13-74 Critical dependency: the request of a dependency is an expression

WARNING in ./node_modules/knex/lib/seed/index.js
150:11-24 Critical dependency: the request of a dependency is an expression

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рднрд╛рдЧ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛:

config.plugins = [
  // ...
  new NormalModuleReplacementPlugin(/\.\.\/migrate/, '../util/noop.js'),
  new NormalModuleReplacementPlugin(/\.\.\/seed/, '../util/noop.js'),
];

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЗрд╕реЗ рдореИрдиреЗ рдХрд┐рдпрд╛ рд╣реИ:

plugins: [
    new webpack.NormalModuleReplacementPlugin(/m[sy]sql2?|oracle(db)?|sqlite3/, "node-noop"),
    new webpack.NormalModuleReplacementPlugin(/\.\.\/migrate/, "node-noop"),
    new webpack.NormalModuleReplacementPlugin(/\.\.\/seed/, "node-noop")
  ]

1) рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП noop.js рдХрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рдЖрдпрд╛рдд рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕реЗ knex рдХреЗ рдЕрдВрджрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЕрднреА рдпрд╣ рд╕рд░рд▓ node-noop lib рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
2) рд╣рдо рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд░реЗрдЧреЗрдХреНрд╕ рдЕрдиреНрдп рд╕рднреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдвреВрдВрдврддрд╛ рд╣реИред рдЕрдкрдиреЗ рджрд┐рд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред

2019/10 рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдореЗрд░рд╛ рдЬрд╡рд╛рдм рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдВрдХ рдореЗрдВ рджреЗрдЦреЗрдВ https://github.com/tgriesser/knex/issues/1446#issuecomment -537715431

рдореИрдВрдиреЗ рдкреАрдЬреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ "рдмрд╛рд╣рд░реА" рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдФрд░ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗрдмрдкреИрдХ рдмреИрдХ-рдПрдВрдб рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ?

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдореИрдВ knex рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рд╡реЗрдмрдкреИрдХ рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЙрд╕ рдмрдВрдбрд▓ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред @mdlavin рдХреЗ рд╕реБрдЭрд╛рд╡ рдиреЗ рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡реЗрдмрдкреИрдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рдерд╛ рдХрд┐ рдореБрдЭреЗ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╡реЗрдмрдкреИрдХ рдмрдВрдбрд▓ рд╕реЗ рдмреИрдВрдб рд╕реЗ рдмрд╛рд╣рд░ рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рдмреАрдЬреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╡реЗрдмрдкреИрдХ рдХреЗ ContextReplacementPlugin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдПрдХ рдирдореВрдирд╛ рд╣реИ (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ):

plugins: [
  //...
  fs.existsSync(path.join(params.targetPackageFilePath, 'migrations')) && new webpack.ContextReplacementPlugin(
    /knex\/lib\/migrate/,
    '.',
    fs.readdirSync(path.join(params.targetPackageFilePath, 'migrations'))
      .reduce((result, file) => {
        return Object.assign(result, {
          [path.join(params.targetPackageFilePath, 'migrations', file)]: path.relative(
            path.dirname(require.resolve('knex/lib/migrate')),
            path.join(params.targetPackageFilePath, 'migrations', file)
          )
        });
      }, {})),

  fs.existsSync(path.join(params.targetPackageFilePath, 'seeds')) && new webpack.ContextReplacementPlugin(
    /knex\/lib\/seed/,
    '.',
    fs.readdirSync(path.join(params.targetPackageFilePath, 'seeds'))
      .reduce((result, file) => {
        return Object.assign(result, {
          [path.join(params.targetPackageFilePath, 'seeds', file)]: path.relative(
            path.dirname(require.resolve('knex/lib/seed')),
            path.join(params.targetPackageFilePath, 'seeds', file)
          )
        });
      }, {}))
  //...
]

рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ params.targetPackageFiletPath рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрде рд╣реИ рдЬреИрд╕реЗ /Users/yourusername/yourproject ред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЙрд╕ рдкрде рдкрд░ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ migrations рдФрд░ seeds рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ рддреЛ рдкрд░рд┐рдгрд╛рдореА рдкреНрд▓рдЧрдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

  fs.existsSync(path.join(params.targetPackageFilePath, 'migrations')) && new webpack.ContextReplacementPlugin(
    /knex\/lib\/migrate/,
    '.',
    {
      '/Users/yourusername/yourproject/201706261234_migration.ts': '../../../migrations/201706261234_migration.ts'
    }),

  fs.existsSync(path.join(params.targetPackageFilePath, 'seeds')) && new webpack.ContextReplacementPlugin(
    /knex\/lib\/seed/,
    '.',
    {
      '/Users/yourusername/yourproject/seeds/201706261234_first-seed.ts': '../../../seeds/201706261234_first-seed.ts'
    }),

рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ knex рдХрд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рд╕реАрдб рдХреЛрдб рдЖрдкрдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рдмреАрдЬреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП require рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ https://github.com/tgriesser/knex/blob/master/ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд░рддреЗ рд╕рдордп рдХреНрдиреЗрдХреНрд╕ рдХреЛ рдЗрди рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рднреВрдорд┐ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдХрд░рдХреЗ?

рд╡реИрд╕реЗ рднреА, рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реЗ рджрд┐рди рдмрдЪрд╛рдУ, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП knex@^0.21.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ mysql2 рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрд╛ рдЬрд╛рдПред рдореИрдВрдиреЗ 2 рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди рд▓рд┐рдП, рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рдереЗред

рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ https://github.com/knex/knex/issues/1128#issuecomment -515573845 рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдорд░реНрдЬ рдХрд░реЗрдВ

externals: [
      {
        // Possible drivers for knex - we'll ignore them
       // comment the one YOU WANT to use
        sqlite3: 'sqlite3',
        // mysql2: 'mysql2', // << using this one
        mariasql: 'mariasql',
        mysql: 'mysql',
        mssql: 'mssql',
        oracle: 'oracle',
        'strong-oracle': 'strong-oracle',
        oracledb: 'oracledb',
        pg: 'pg',
        'pg-query-stream': 'pg-query-stream',
      }

рдПрдХ рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрди рднреА рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдЧрд╛
рд░реЗрдлрд░реА https://github.com/knex/knex/issues/3130#issuecomment -573293311

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ mssql рдЙрдк-рдбреАрдЖрдИрдЖрд░ рдХрд╛ рд╕рд╣реА рд╕реЗрдЯ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдХреБрдЫ pg рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рднреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреНрдиреЗрдХреНрд╕ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред

    new webpack.IgnorePlugin(
        new RegExp('^(mssql*|mariasql|.oracle.|sqlite3|mssql/.*|tedious|node-pre-gyp)$')
      ),
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕