Knex: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП Knex cli рдХреЛ es6 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдлрд╝рд░ре░ 2016  ┬╖  42рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: knex/knex

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ knex cli рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП es6 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЭрдВрдбреЗ рдХреЗ рдкреАрдЫреЗ рд╣реЛ рдпрд╛ рдХреЗрд╡рд▓ рддрднреА рдЬрдм рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ .babelrc рдлрд╝рд╛рдЗрд▓ рд╣реЛред

PR please feature request

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

@jeremejevs рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ ... рд╕рд╛рде

{
  "scripts": {
    "knex": "babel-node node_modules/.bin/knex"
  }
}

рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

npm run knex migrate:latest

рд╕рднреА Knex рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдП рдмрд┐рдирд╛ред

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

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

рдорд╛рдлрд╝ рдХрд░рдирд╛ред рд╡рд╣ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдЕрдВрдХ резреиреиреж рдХреЗ рд▓рд┐рдП рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдереА, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рд╡рд╣ рдЯрд┐рдкреНрдкрдгреА рдпрд╣рд╛рдБ рдбрд╛рд▓ рджреАред

@ rhys-vdw рдХреНрдпрд╛ рдЖрдк рд╣рд╛рде рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рд▓рдЧреЗрдЧрд╛?

@rhys- vdw @jmfurlott ред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╣рдореЗрдВ рдЙрди рдШрдЯрдХреЛрдВ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдорджрдж рдХрд░реЗрдЧреА

рд╕реАрдПрд▓рдЖрдИ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдореЗрдВ require("babel-register") рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдпрдж рдХрд╛рдо рдХрд░реЗред

рдкреБрд╖реНрдЯрд┐ рдХреА - рдореЗрд░реА рдмреАрдЬ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдФрд░ ES2015 рдЪрд▓ рд░рд╣рд╛ рдерд╛! рд╢рд╛рдпрдж knexfile.js рдореЗрдВ compiler рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдореЛрдЪрд╛ рдЙрдирдХреЗ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ?

рдореБрдЭреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдореЗрд░рд╛ рдХрд╛рдо рдорд┐рд▓ рдЧрдпрд╛:

db.config.js

export default {
    devDB: {
        client: 'sqlite3',
        connection: {
            filename: './db.sqlite3',
        },
        pool: {
            min: 1,
            max: 1,
        },
    },
    migrations: {
        directory: './migrations',
        tableName: '_migrations',
    },
    seeds: {
        directory: './seeds/dev'
    },
    pool: {
        min: 1,
        max: 1,
    }
}

knexfile.js

require('babel-register')
const config = require('./db.config').default // <- this -.-

module.exports = config

.рдмреЗрдмреЗрд▓рдЖрд░рд╕реА

{
    "env": {
        "devDB": {
            "plugins": ["transform-es2015-modules-commonjs"]
        }
    }
}

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдмреАрдЬ рдкрде рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛, рдЬрдм рд╡реЗ ./seeds рдореЗрдВ рд╕реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдорд┐рд▓реЗрдЧрд╛

No seed files exist

рд╡рд╣реА рдкрд▓рд╛рдпрди рдХреЗ рд▓рд┐рдП рднреА..

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк Knex рдХреЛ babel-node рд╕рд╛рде рдЪрд▓рд╛рдирд╛ рд╣реИ, рдЬреЛ babel-cli , рдЬреИрд╕реЗ:

{
  "scripts": {
    "db:migrate:latest": "babel-node node_modules/.bin/knex migrate:latest"
  }
}

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Babel рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдРрдк knexfile.js рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ require('babel-register') рд╡рд┐рдХрд▓реНрдк рдЕрдиреБрдкрдпреЛрдЧреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

@jeremejevs рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ ... рд╕рд╛рде

{
  "scripts": {
    "knex": "babel-node node_modules/.bin/knex"
  }
}

рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

npm run knex migrate:latest

рд╕рднреА Knex рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдП рдмрд┐рдирд╛ред

@olalonde рд╣рд╛рдБ, рд╡рд╣ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдореИрдВ рд╕рд┐рд░реНрдл рд╕реНрдкрд╖реНрдЯ "рдбреАрдмреА: рдорд╛рдЗрдЧреНрд░реЗрдЯ: рдореЗрдХ " рдФрд░ "рдбреАрдмреА: рдорд╛рдЗрдЧреНрд░реЗрдЯ: рдирд╡реАрдирддрдо " рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдореИрдВ рдЖрдзреЗ рд╕рд╛рд▓ рдмрд╛рдж рд╕рдЯреАрдХ рд╢рдмреНрдж рднреВрд▓ рдЬрд╛рддрд╛ рд╣реВрдВ (рдХреНрдпрд╛ рдпрд╣ "рдореЗрдХ" рдерд╛? рдпрд╛ "рдореЗрдХ-рдорд╛рдЗрдЧреНрд░реЗрд╢рди"? рдпрд╛ "рдорд╛рдЗрдЧреНрд░реЗрдЯ: рдореЗрдХ"? рдпрд╛ "рдорд╛рдЗрдЧреНрд░реЗрдЯ:рдирдпрд╛"? рдпрд╛...)

@olalonde рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рд╕реНрддрд╛рд╡! рддрдм рдЖрдк npm рд╕реНрдХреНрд░рд┐рдкреНрдЯ "рд░рдЪрдирд╛" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ:

{
    "knex": "babel-node node_modules/.bin/knex",
    "migrate": "npm run knex -- migrate:latest --env ",
}

рд╢рд╛рдпрдж рдпрд╣ рднреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ: https://github.com/standard-things/esm

рдУрдПрд╕: рд╡рд┐рдВрдбреЛрдЬрд╝
рдмреЗрдмрд▓-рдХреНрд▓реА@6.26.0
[email protected]

// migrations/contacts.js
export function up (knex) {
  return knex.schema
    .createTable('contacts', table => {
      table.increments('id').primary()
      table.string('firstName')
      table.string('lastName')
      table.string('emailAddress')
    })
}

export function down(knex) {
  return knex.schema
    .dropTable('contacts')
}
$ npx knex migrate:latest
Using environment: development
migrations/contacts.js:1
(function (exports, require, module, __filename, __dirname) { export function up (knex) {
                                                              ^^^^^^
SyntaxError: Unexpected token export
    at Object.exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:543:28)
    ...
$ npx babel-node node_modules/.bin/knex migrate:latest
./node_modules/.bin/knex:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
          ^^^^^^^
SyntaxError: missing ) after argument list
    at Object.exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:543:28)
    ...
$ npx babel-node node_modules/knex/bin/cli.js migrate:latest
Using environment: development
Batch 1 run: 1 migrations
migrations/contacts.js

рдЬрдм рдореИрдВ @olalonde рдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ npm run knex migrate:make , рдпрд╛ npm run knex рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдХреЗ рд╕рд╛рде, рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдмрд╕ npm run knex рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред npm рдбреЙрдХреНрд╕ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрд░реНрдХреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ -- рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ npm run knex -- migrate:make , рд▓реЗрдХрд┐рди рд╡рд╣ рдЕрднреА рднреА рдмрд┐рдирд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред

* рдирд┐рдХреНрд╕ рдкрд░ рд░реАрдлрд╛рдИ (рддреЗрдЬ!) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдЙрдкрдирд╛рдо рд╕рдорд╛рдирд╛рд░реНрдереА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ!)

/*

  npm install --save-dev reify
  echo '.reify-cache/' >> .gitignore
  alias knex='node -r reify ./node_modules/.bin/knex

  knex migrate:latest # тАжetc

*/

const table = 'foo';

export const up = knex => {
  return knex.schema.createTable(table, t => {
    t.increments();
    // тАжetc
    t.timestamps();
  });
};

export const down = knex => knex.schema.dropTable(table);

// OR

// export function up (knex) {
//   return knex.schema.createTable(table, t => {
//     t.increments();
//     // тАжetc
//     t.timestamps();
//   });
// }

// export function down (knex) {
//   knex.schema.dropTable(table);
// }

рдХреЛрдИ рднреА es6ifying knexfile.js рдкреНрд░рдпрд╛рд╕ рдмрджрд╕реВрд░рдд рд╣реИрдВ рд▓реЗрдХрд┐рди рдореИрдВ рдореЙрдбреНрдпреВрд▓.рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рд╡рд┐рд╕рдВрдЧрддрд┐ рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддрд╛ рд╣реВрдВ

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде No knexfile found in this directory. Specify a path with --knexfile рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд░рд╣реЗрдВ:

// src/knexfile.js
import config from 'config'

export default {
  debug: false,
  settings: config.get('dbConfig'),
  seeds: {
    directory: './seeds/'
  }
}
//package.json
 "scripts": {
    "knex": "babel-node node_modules/.bin/knex"
  }

```
рдпрд╛рд░реНрди рдХреНрдиреЗрдХреНрд╕ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ: рд▓реЛрд▓ рдмрдирд╛рдПрдВ
````

рдХреЛрдИ рд╕рдВрдХреЗрдд? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдбреАрдЖрдИрдЖрд░ рдореБрджреНрджрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ)

@haywirez рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдпрд╣ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЗ рд╡рд┐рд╖рдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?.. рд╡реИрд╕реЗ рднреА, рдареАрдХ рд╡рд╣реА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬреЛ рдпрд╣ рдкреВрдЫ рд░рд╣рд╛ рд╣реИ, --knexfile рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЖрдкрдХреЗ knexfile.js рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ @haywirez ' рд╕рдорд╕реНрдпрд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ export default { ... } рдХреЛ ESM рдЗрдВрдЯрд░рдСрдк рдХреЗ рд▓рд┐рдП const file = require('/path/to/knexfile').default рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рд┐рдлреНрдЯрдСрдлрд╝, рдЬреИрд╕рд╛ рдХрд┐ рдХреНрдиреЗрдХреНрд╕ рдХреНрд▓реА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, --require рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ esm рдпрд╛ babel-register рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрджреЗрд╢ рдХрдорд╛рдВрдбрд░ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИ, esm рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рдж knex cli рдорд░ рдЬрд╛рддрд╛ рд╣реИ:

┬▒ |master ?:18 тЬЧ| тЖТ npx knex --require esm seed:make admin_user
Requiring external module esm

  error: unknown option `--require'

рдХреНрдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдкрд░ --require рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде knexfile рдкрд░ рдЗрдВрдЯрд░рдСрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реА рд╣реЛрдЧреА?

https://github.com/tgriesser/knex/issues/1232#issuecomment -411775132 рдЖрдкрдХреЛ рдЙрдкрдирд╛рдо рдкрде рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП tsconfg-paths рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬреЛ рдмреАрдЬ w/ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред ts-рдиреЛрдб рдЙрдкрдирд╛рдо рдкрде рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдмреАрдЬ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЬрдЯрд┐рд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдЧрд░ рд╣рдордиреЗ --require рдзреНрд╡рдЬ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ рддреЛ рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк --require рдзреНрд╡рдЬ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

node -r tsconfig-paths/register node_modules/.bin/knex seed:run

@olalonde рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдРрд╕реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рд▓реЛрдХрдкреНрд░рд┐рдп Node.js рд╕рдВрд╕реНрдХрд░рдг ES6 рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ?

@kibertoad рдиреЛрдб рдЕрднреА рддрдХ ESModules рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@mAAdhaTTah рдпрд╣ рдереЛрдбрд╝реЗ рдХрд░рддрд╛ рд╣реИ: https://nodejs.org/api/esm.html

@kibertoad рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдФрд░ рдЕрд╕реНрдерд┐рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдпрджрд┐ рдЖрдк рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ esm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЖрдЬрдорд╛рдПрдВ:
node -r esm node_modules/knex/bin/cli.js migrate:make migration_name ред

Linux рдФрд░ Mac рдкрд░, рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
node -r esm node_modules/.bin/knex migrate:make migration_name

рддреЛ рдЗрд╕ рдЯрд┐рдХрдЯ рдкрд░ рдореБрдЭреЗ рдЬреЛ рдЖрдЦрд┐рд░реА рдЕрдкрдбреЗрдЯ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдЙрд╕рдореЗрдВ esm рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдпрд╣ рдЖрдзреЗ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдирд╛ рд╣реИ ... рдореИрдВ рдмреЗрдмреЗрд▓ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрддреНрд╕реБрдХ рд╣реВрдВ, рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдмреЗрдмреЗрд▓-рдиреЛрдб рдХреЗ рдмрдЬрд╛рдп @ рдмреЗрдмреЗрд▓/рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред

@ рдорд╛рдЪрд┐рдирдШреЛрд╕реНрдЯ рдЖрдк рдирд╡реАрдирддрдо рдорд╛рд╕реНрдЯрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдХрд┐рд╕реА рднреА рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рд╢реЗрд╖ рд╕реАрдорд╛ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдореЗрд░рд╛ package.json рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

"knex": "npx @babel/node node_modules/.bin/knex --knexfile=src/database/knexfile.js",
"migrate": "npm run knex migrate:latest",

// ...
"dependencies": {
// ...
"knex": "git://github.com/tgriesser/knex.git#master",
// ...

рдФрд░ рдореЗрд░рд╛ knexfile.js рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

import { development } from './realKnexFile';
module.exports = {
    development
};

рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдореИрдВ npm run migrate рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд╣реИ:

knexfile.js:1
import { development } from './realKnexFile';
       ^

SyntaxError: Unexpected token {
    at Module._compile (internal/modules/cjs/loader.js:760:23)

рдЕрджреНрднреБрдд "esm" рдореЙрдбреНрдпреВрд▓ (Lodash рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ) рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП Babel рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА Knex рдХреЛ ES6 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕реБрдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ, рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ --require esm рд╕реЗ node рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред

рдпрджрд┐ knex рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗрд╡рд▓ -r рдФрд░ рдЗрд╕реЗ рдиреЛрдб рдХреЛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреА рд╣реИ, рддреЛ рдпрд╣ рди рдХреЗрд╡рд▓ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧреА рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдореБрджреНрджреЗ рдХреЛ рднреА рд╣рд▓ рдХрд░реЗрдЧреА рдЬрд╣рд╛рдВ рдХрд┐рд╕реА рдХреЛ Knex рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

-рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ-

рдЬрдм рддрдХ -r рддрд░реНрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддрдм рддрдХ рдХреЛрдИ рднреА рд╕рднреА _required_ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ ES6 рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди knexfile.js ) рдРрд╕рд╛ рдХрд░рдХреЗ:

require = require("esm")(module);
const importedContent = require('./someFile.js');

рдпрд╣ require рдХреЛ ES6 рдореЙрдбреНрдпреВрд▓ рдХреЛ рдареАрдХ рдХрд░ рджреЗрдЧрд╛ ... рд▓реЗрдХрд┐рди knexfile.js рдЕрднреА рднреА require рдФрд░ module.exports ; рдПрдХ -r рд╡рд┐рдХрд▓реНрдк рдЗрд╕реЗ рд╣рд▓ рдХрд░реЗрдЧрд╛ред

рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рд▓рдЧ рд░рд╣реА рд╣реИ, рдпрд╣рд╛рдБ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░ рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рд╣реИ рдИрдПрд╕рдПрдо Knex рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

knexfile.js

const config = {
}

// Knex will fail if you use "exports default"
module.exports = config

рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди

{
  "scripts": {
    "knex": "node -r esm node_modules/.bin/knex",
    "db:migrate": "yarn knex migrate:latest"
  }
}

ESM рдХреЗ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдореИрдВ Knex рдХреЛ Node>12 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдБред рдореБрдЭреЗ рдиреЛрдб рдореЗрдВ рдИрдПрд╕рдПрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЕрдиреБрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓реЗрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХрдм рд╢реБрд░реВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХрд╛рдо рдХреЗ рдШрдВрдЯреЛрдВ рдХреЗ рджреМрд░рд╛рди рдЗрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рд╡реНрдпрд╛рдкрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ)ред рдореБрдЭреЗ knex рдХреЛрдбрдмреЗрд╕ рдХреЗ рдЖрджреА рд╣реЛрдиреЗ рдореЗрдВ рднреА рдПрдХ рдорд┐рдирдЯ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирдИ рд▓рд╛рдЗрди рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ require('esm') рдЬреЛрдбрд╝рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдЕрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓реЗрдЦрдХ рдирдИ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИрдВред

@jhechtf @machineghost рдЗрд╕реЗ рджреЗрдЦреЗрдВ:
https://github.com/knex/knex/pull/3616
https://github.com/knex/knex/pull/3639
https://github.com/knex/knex/pull/3638

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓рд┐рдлрд╝реНрдЯрдСрдлрд╝ рд╕рдорд░реНрдерди рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА рдХрд┐ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВред
рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рд╕рдм рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рднреА рдХрд┐рд╕ рдХрд╛рдо (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

рд╣рд╛рдБ, рдЖрдк рд▓реЛрдЧ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдиреЛрдб рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЧрдП, рдЬреЛ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдЖрдИрдПрдордПрдЪрдУ "рдПрдПрд╕рдПрдо" рдореЙрдбреНрдпреВрд▓ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдзреНрд╡рдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА: рдпрд╣ рд╕рднреА рдиреЛрдб рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рдмрдирд╛ рджреЗрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ рдерд╛, рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде) .

рд▓реЛрджрд╢ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреА рдУрд░ рд╕реЗ рд╣реИ; рдЬреЗрдбреАрдбреА рдЪрдЯреНрдЯрд╛рдиреЛрдВред

@machineghost https://github.com/knex/knex/pull/3639 рдмреЗрдмреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рд╕реА рдХреЛ esm рдореЙрдбреНрдпреВрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЕрдм рдкреАрдЖрд░ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

рдЦреИрд░, рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╕реНрд░реЛрдд рд╣реИ;)

рдореИрдВ рдпрд╣ рдЦреЛрдЬ рдХреА рдереА рдФрд░ рдЗрд╕реЗ рджреВрд╕рд░реЛрдВ рдХреЛ рдпрд╣рд╛рдБ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА: https://stackoverflow.com/questions/47277887/node-experimental-modules-requested-module-does-not-provide-an-export-named/54302557#54302557

рдФрд░ рдЕрдм рдореБрдЭреЗ рд╣рд░ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрдкрд╡реЛрдЯ рдорд┐рд▓рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ESM рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░реАрди (рдпрдХреАрдирди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ , рдЕрднреА) рд╕рдорд╛рдзрд╛рди рд╣реИред

@machineghost рдореМрдЬреВрджрд╛ рдХреЛрдбрдмреЗрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рдЗрд╕рдХреЗ рдкрд░рд┐рдЪрдп рдХреА рдХрд┐рддрдиреА рдШреБрд╕рдкреИрда рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ "рдЗрд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ" рд╕реМрджреЗред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рднрд╛рдЧ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдореБрджрд╛рдп рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рджреА рд╣реИ, рд╢рд╛рдпрдж рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ @jdalton рд╕реЗ рдкреВрдЫрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реВрдЪрд┐рдд рд░рд╛рдп рдХреЗ рд╕рд╛рде?): crossed_fingers:

@machineghost рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк https://github.com/knex/knex/pull/3616 рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ esm рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕рдВрднрд╡рдд: рдЗрд╕реЗ рд╣рдЯрд╛рдирд╛ рдпрд╛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде рдПрдЯреАрдПрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордп рдорд┐рд▓рдиреЗ рдкрд░ рдореИрдВ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред рд╢рд╛рдпрдж @jhechtf рдЬрд▓реНрдж рд╣реА рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рд╣рд╛рдБ, рдЖрдк рд▓реЛрдЧ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдиреЛрдб рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЧрдП, рдЬреЛ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

@machineghost : рд╣рдореНрдо... рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ --esm рдзреНрд╡рдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд esm рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:

https://github.com/knex/knex/blob/0f523db957138cc0423723c699c9ce52db5feb14/bin/cli.js#L52 -L55

рд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдЯ рдкрд░: рдЖрдкрдиреЗ рдореБрдЭреЗ рдЕрднреА рдпрд╛рдж рджрд┐рд▓рд╛рдпрд╛ рдХрд┐ Liftoff рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░рд╛ рдорддрд▓рдм --require рдзреНрд╡рдЬ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдерд╛ред рдореБрдЭреЗ рдЕрднреА рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП...

рдУрд╣, рдореЗрд░реА рдорд╛рдлрд╝реА! рдореИрдВ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рд╕реНрдХреИрди рдХрд░ рд░рд╣рд╛ рдерд╛, " node ${KNEX} --esm " рджреЗрдЦрд╛, рдФрд░ рдмрд╕ рд╡рд╣рд╛рдВ рдЪрд░ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рд╕реЛрдЪрд╛ рдХрд┐ рдЖрдк рдиреЛрдб рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдиреЛрдб рдХреЛ рдПрдХ рддрд░реНрдХ рдкрд╛рд╕ рдХрд░ рд░рд╣реЗ рдереЗред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдореБрджреНрджреЗ рдХреЗ рдзрд╛рдЧреЗ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛; рдЕрдЪреНрдЫрд╛ рдХрд╛рдо: +1:

рдПрдирдкреА! рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреАрдЖрд░ рдореЗрдВ @D10221 рджреНрд╡рд╛рд░рд╛ рдлреАрдЪрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛:

https://github.com/knex/knex/pull/3616

рддреЛ, рд╡реЗ рд╢реНрд░реЗрдп рдХреЗ рдкрд╛рддреНрд░ рд╣реИрдВ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕