gatsby-node.js
ã¯ES6javascriptãèš±å¯ããŸããã
gatsby-node.js
ïŒ
import myOnCreatePage from './gatsby/node/onCreatePage';
export const onCreatePage = myOnCreatePage;
gatsby-node.js
ã¯ãã©ã³ã¹ãã€ã«ããã gatsby-ssr.js
ãgatsby-browser.js
ãããªES6ãèš±å¯ããå¿
èŠããããŸãã
ãšã©ãŒ
Error: <root>/gatsby-node.js:1
SyntaxError: Unexpected token import
System:
OS: macOS High Sierra 10.13.6
CPU: x64 Intel(R) Core(TM) i7-6567U CPU @ 3.30GHz
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 8.10.0 - ~/.nvm/versions/node/v8.10.0/bin/node
Yarn: 1.9.4 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v8.10.0/bin/npm
Browsers:
Chrome: 68.0.3440.106
Firefox: 61.0.2
Safari: 11.1.2
npmPackages:
gatsby: next => 2.0.0-rc.5
gatsby-source-filesystem: next => 2.0.1-rc.1
npmGlobalPackages:
gatsby-cli: 1.1.58
ãã®ãã¡ã€ã«ã¯node.jsã«ãã£ãŠå®è¡ãããããã䜿çšããŠããããŒãã®ããŒãžã§ã³ããµããŒããããã®ã¯äœã§ããµããŒãããŸãã ããŒãã§ã®Es6ã¢ãžã¥ãŒã«ã®ãµããŒãã¯åŒãç¶ãä»æåã§ãhttps://medium.com/@giltayar/native-es-modules-in-nodejs-status-and-future-directions-part-i-ee5ea3001f71
ç§ãããã«ééããŠããŸãã gatsby-mdx/mdx-renderer
ã䜿çšããå¿
èŠãããã require
ãŠããå¿
èŠãªãã¡ã€ã«èªäœã¯ES6ã¢ãžã¥ãŒã«æ§æã䜿çšããŠäžæããŸãã gatsby-node.js
ãbabelãééããããã«æ§æãå€æŽããæ¹æ³ã¯ãããŸããïŒ ç§ã«ãšã£ãŠã¯ããã»ã©ç·æ¥ã§ã¯ãããŸãããããã®äžã§JSXã䜿çšã§ããã®ã¯çŽ æŽãããããšã§ãã
äœãæå¹ã«ããæé ã«ãªããŸãimport
/ export
ã§ã®ãµããŒããgatsby-node.js
ïŒ .mjs
ãã¡ã€ã«ã䜿çšããã¡ã³ã·ã§ã³ã«ãªã³ã¯ãããMediumã®æçš¿ã§ãããGatsbyã§ã¯æ©èœããªããšæããŸããïŒ
babel-node
代ããã«node
babel-node
ã䜿çšããæ¹æ³ã¯ãããŸããïŒ
ç§ã¯ããã«esmã䜿çšãããããŸã§ã®ãšããæ©èœããŸãã ãããç§ãããããšã§ãïŒ
esm
ïŒ npm i esm
ïŒãã€ã³ã¹ããŒã«ããŸãgatsby-node.js
ãå«ãåããã©ã«ãïŒã«gatsby-node.esm.js
ãšãããã¡ã€ã«ãäœæããŸãgatsby-node.js
ããgatsby-node.esm.js
移åããŸãgatsby-node.js
ãã¹ãŠã®ã³ãŒãã次ã®ããã«çœ®ãæããŸããjavascript
require = require('esm')(module)
module.exports = require('./gatsby-node.esm.js')
import
ã§gatsby-node.esm.js
ãå¿
èŠãªã ã䜿çšããŠãã ããð@KyleAMathewsãã®æ¹æ³ã§ãããè¡ãããšã«ã€ããŠäœãå±éºãªããšã¯ãããŸããïŒ å®å šã§ããã°ãããã¥ã¡ã³ãã«è¿œå ã§ããããã§ã:)
ãã®ãã¿ãŒã³ã¯ééããªã@nikoladevã§æ©èœããŸãïŒ ãã ããããã¥ã¡ã³ãã®ã©ãã«é 眮ããããã¯ããããŸããã @ gatsbyjs / docsã®ã¢ã€ãã¢ã¯ãããŸããïŒ
ãããç§ããããããæ¹æ³ã§ãïŒ
require('babel-register')({
presets: [ 'env' ]
})
require('babel-polyfill')
module.exports = require(`./gatsby-node.mjs`)
ããã¯ååã«æ©èœããŠããããã§ããããã£ãã·ã¥ãå°ç¡ãã«ããªãã®ã§ã¯ãªãããšæããŸããïŒ gatsby-node.js
ãå€æŽãããšãã£ãã·ã¥ããªã»ãããããã¯ãã ãšæããŸãããé¢é£ããŠãããã©ããã¯ããããŸããããåé¡ãçºçããŠããŸãã
@KyleAMathewsã³ã³ãã³ããšããŒã¿ã®ãœãŒã·ã³ã°ã®äžã§ã¯ã©ãã§ããïŒ å°ãªããšããããç§ãããã䜿ã£ãçç±ã§ãã
ããã¯äžçš®ã®å¥ã®è°è«ã§ããã import
ã䜿çšãããã£ã³ã¹ã¯ç®±ããåºããŠãµããŒããããå¯èœæ§ããããŸããïŒ å€§èŠæš¡ãªã®ã£ãããŒãããžã§ã¯ãã®å Žåã gatsby-node.js
ã§äœãèµ·ãããã¯ãå®éã®ããã³ããšã³ããšã»ãŒåããããéèŠã§ããã import
ã async/await
ã䜿çšããŠææ°ã®æ¹æ³ã§ã³ãŒãã£ã³ã°ã§ããªãã®ã¯æ®å¿µã§ããè¿œå ã®ããã¯ãªãã§
@KyleAMathews ãããŒã«ã«ES6ãã¡ã€ã«ãèŠæ±ããæ¹æ³ã¯ãããŸããïŒ ããšãã°ã次ã®ãããªsrc/utils/article.js
ãã¡ã€ã«ããããŸãã
// src/utils/article.js
import { format } from 'date-fns'
export const createArticleUrl = (a) => (
`/${format(a.publishDate, 'YYYY')}` +
`/${format(a.publishDate, 'MM')}` +
`/${format(a.publishDate, 'DD')}` +
`/${a.category.urlSlug}` +
`/${a.urlSlug}`
)
ãããŠç§ã®gatsby-node.js
ãã¡ã€ã«ïŒ
// gatsby-node.js
...
const { createArticleUrl } = require(`./src/utils/article`)
...
ãããŠãç§ã¯ãšã©ãŒãåãåããŸãïŒ
Error: .../src/utils/article.js:1
(function (exports, require, module, __filename, __dirname) { import { format } from 'date-fns'
^^^^^^
SyntaxError: Unexpected token import
äœãæ¡ã¯ïŒ ãã®é¢æ°ã䜿çšããŠèšäº/æçš¿ã®URLãäœæããReactã³ã³ããŒãã³ããšåãããã«ã€ã³ããŒãããããšæããŸãã ããããšãïŒ
src/utils/article.js
ãã¡ã€ã«ã§ES5ã䜿çšããããšã§ã次ã®ããã«åé¡ã解決ã§ããŸããã
// src/utils/article.js
const { format } = require('date-fns')
var createArticleUrl = function (a) {
return (
`/${format(a.publishDate, 'YYYY')}` +
`/${format(a.publishDate, 'MM')}` +
`/${format(a.publishDate, 'DD')}` +
`/${a.category.urlSlug}` +
`/${a.urlSlug}`
)
}
module.exports.createArticleUrl = createArticleUrl
次ã«ã次ã®ããã«gatsby-node.js
ãå®è¡ããŸãã
// gatsby-node.js
...
const { createArticleUrl } = require(`./src/utils/article`)
...
ES6ãã¡ã€ã«ã®éåžžã®ããã«createArticleUrl
ã€ã³ããŒãããããšãã§ããŸãimport { createArticleUrl } from '../utils/article'
ã
ç§ã¯ããã«esmã䜿çšãããããŸã§ã®ãšããæ©èœããŸãã ãããç§ãããããšã§ãïŒ
esm
ïŒnpm i esm
ïŒãã€ã³ã¹ããŒã«ããŸã- ã«ãŒããã©ã«ãïŒ
gatsby-node.js
ãå«ãåããã©ã«ãïŒã«gatsby-node.esm.js
ãšãããã¡ã€ã«ãäœæããŸã- ãã¹ãŠã®ã³ãŒãã
gatsby-node.js
ããgatsby-node.esm.js
移åããŸãgatsby-node.js
ãã¹ãŠã®ã³ãŒãã次ã®ããã«çœ®ãæããŸãã
js require = require('esm')(module) module.exports = require('./gatsby-node.esm.js')
import
ã§gatsby-node.js
ãå¿ èŠãªã ã䜿çšããŠãã ããð@KyleAMathewsãã®æ¹æ³ã§ãããè¡ãããšã«ã€ããŠäœãå±éºãªããšã¯ãããŸããïŒ å®å šã§ããã°ãããã¥ã¡ã³ãã«è¿œå ã§ããããã§ã:)
5çªç®ã®ã gatsby-node.esm.js
import
ã䜿ããããã§ããïŒ
@WeZZardããªãã¯å®å šã«æ£ããã§ãïŒ æçš¿ã§ä¿®æ£ããŸãã
ãããæ©èœããããšãç§ãèŠã€ãããã1ã€ã®æ¹æ³ã¯ãpackage.jsonã次ã®ããã«æŽæ°ããããšã§ããã
"scripts": {
"build": "npx --node-arg '-r esm' gatsby build",
"develop": "npx --node-arg '-r esm' gatsby develop",
"start": "npx --node-arg '-r esm' npm run develop",
"serve": "npx --node-arg '-r esm' gatsby serve",
"test": "echo \"Write tests! -> https://gatsby.app/unit-testing\""
},
æ°ãããã¡ã€ã«ãäœæããå¿ èŠã¯ãããŸãã
@reaktivoã¹ã¯ãªããã¯ããŒã«ã«ã§netlifyã§æ©èœãããããšãã§ããŸããã§ããã npx
netlifyããããã«ããªãã®ãµã€ããå±éããããšã¯ã§ããŸããïŒ
@rotexhawkäŸãããã·ã¥ããã ãã§ã
https://github.com/reaktivo/gatsby-esm/
https://gatsby-esm-example.netlify.com/
ããªããå®è¡ããŠããäœãnpm install --save-dev esm
ã®åã«ããŠããã«ãèšå®ãå®è¡ãããããã«npm run build
ã®ä»£ããã«gatsby build
ãã®ã³ãããããã§ãã¯ããŠãã ããïŒ https ïŒ
ãããã§ãç§ã¯esmãã€ã³ã¹ããŒã«ããŸããã åé¡ã¯ãnetlifyãnpx
ã«ã¢ã¯ã»ã¹ã§ããªãããšã§ãããšã³ãã³ãã倱æãããšèšããŸãã ããŒãã®ããŒãžã§ã³ãæå®ããŸããããããã¯åœ¹ã«ç«ã¡ãŸããã§ããã
@rotexhawkç§ãéã£ããããžã§ã¯ããNetlifyã«ãããã€ãããããšãèãããšãããã¯æ¬åœã«å¥åŠãªããšã§ã...ãšã«ããã npx
ãåé¿ããå¿
èŠãããå Žåã¯ã次ã®ããã«æ©èœããå¯èœæ§ããããŸãã
"scripts": {
"build": "node -r esm ./node_modules/bin/gatsby build",
"develop": "node -r esm ./node_modules/bin/gatsby develop",
"start": "npm run develop",
"serve": "node -r esm ./node_modules/bin/gatsby serve",
"test": "echo \"Write tests! -> https://gatsby.app/unit-testing\""
},
@rotexhawk NetlifyããŒã ãšé£çµ¡ããhttpsïŒ //www.netlify.com/docs/build-settings/#node-npm-and-yarnãåç §ããŠ
@reaktivoãè¡ããŸãã ãã¹ãŠã®å©ãã«æè¬ããŸãã
Gatsbyã¯es6ã¢ãžã¥ãŒã«ãgatsby-node.jsãã¡ã€ã«å ã§æ©èœããå¿ èŠãããããšã瀺ããŠãããããããã¥ã¡ã³ãã«ãã®esmã¢ãããŒããè¿œå ããããšã匷ãæ€èšããŸãã ã¢ãžã¥ãŒã«ãæ··åšããããšã次ã®ãšã©ãŒã¡ãã»ãŒãžãåºåãããŸãã
error This plugin file is using both CommonJS and ES6 module systems together which we don't support. You'll need to edit the file to use just one or the other.
ããã¯ães6ã¢ãžã¥ãŒã«ã䜿çšã§ããããšãæ確ã«ç€ºããŠããŸãã
esm
ã¯ãyarnã¯ãŒã¯ã¹ããŒã¹ã䜿çšããŠããå Žåã¯æ©èœããªãããã§ãã ã¯ãŒã¯ã¹ããŒã¹ã¢ãžã¥ãŒã«ãèŠã€ãããªããšè¡šç€ºãããŸãã
å®éã«ã¯ã gatsby-node.ems.js
ã®æåã®ã¬ãã«ã®ã€ã³ããŒãã§ã®ã¿æ©èœããã€ã³ããŒããããã³ã³ããŒãã³ããã€ã³ããŒããããã®ã§ã¯æ©èœããªãããã§ãã
äŸãã°ã
./gatsby-node.ems.js
import foo from "./foo";
const fooText = foo + " more text";
./foo
import bar from "bar";
const foo = bar("whatever");
export default foo;
ãšã©ãŒãã¹ããŒããŸãïŒ
Error in "C:\...\gatsby-node.js": Cannot find module 'bar'
Nodeã¢ãžã¥ãŒã«ã¯ã»ãŒããã«ããã®ã§ã --experimental-modules
代ããã«esm
--experimental-modules
ããŒãã䜿çšãããã£ãã®ã§ãã
scripts.startã"node --experimental-modules ./node_modules/.bin/gatsby develop"
ã«å€æŽãã gatsby-node.js
ååãgatsby-node.mjs
ã«å€æŽããŸãããã
ãã/ website / gatsby-node.mjsãã®ãšã©ãŒïŒESã¢ãžã¥ãŒã«ãããŒãããã«ã¯ã€ã³ããŒãã䜿çšããå¿ èŠããããŸãïŒã/ website / gatsby-node.mjs
ãšã©ãŒïŒ[ERR_REQUIRE_ESM]ïŒESã¢ãžã¥ãŒã«ãããŒãããã«ã¯ã€ã³ããŒãã䜿çšããå¿ èŠããããŸãïŒã/ website / gatsby-node.mjs
å ¬åŒã«ã¯ãµããŒããããŠããããããã«èšèŒãããŠããåé¿çã¯ãããŸã§ã®ãšããããå®è¡ã§ããªãããšã«æ³šæããŠãã ããã äžéšã®ããã±ãŒãžã¯ããã®å®éšçãªããŒãæ©èœãšãŸã äºææ§ããªãããæ©èœããªãå¯èœæ§ããããŸãã ç©äºãå®å®ãããããã®ãããã¯ãåæ€èšã§ããŸãã
ãããã¯ãŸã å®éšçã§ãããå®å šã«ã¯å®æããŠããŸããã æã ããåé€ãããŸãã
ãã ããå®è£ ã¯å®éšçãªãŸãŸã§ãããå€æŽãããå¯èœæ§ããããŸã
ç§ã¯ãããæ·±ãæãäžããŸãããããŠããã¯ãŸã èŠçã®äŸ¡å€ããããŸããã ããŒããŒãå®è£
ãããã®ãåŸ
ã€ãã esm
ããã±ãŒãžã䜿çšããŠãã ããã
誰ããbabelã䜿çšããŠè§£æ±ºçãèŠã€ããŸãããïŒ gatsbyãããžã§ã¯ãã«babelèšå®ãããããããŠããã¹ãŠæ©èœãããããšãã§ããã°çŽ æŽããããšæããŸãã
gatsbyã䜿çšããŠããŸããã module.exports
ã«æ»ããªããã°ãªããªãããšã¯ãæ¬åœã«å€§ããªåŸéã®ããã«æããŸãã
Modern web tech without the headache
->ããã»ã©å€ããªã:(
npm i esm
次ã«ãã³ãã³ãã次ã®ããã«å€æŽããŸãã
https://github.com/wesbos/awesome-uses/blob/master/package.json#L39 -L42
@wesbos @reaktivoã¯ãææ°ã®gatsbyïŒç§ã®å Žåã¯2.22.17ïŒã§ããã®ä¿®æ£ã䜿çšã§ããŸããïŒ
ç§ã¯ãã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠåé¡ãªãåäœããŸããããä»æ¥gatsbyãæŽæ°ããã€ã³ããŒããšã©ãŒãåã³çºçãå§ããŸããïŒ
`` `
npx --node-arg'-r esm'gatsbydevelop
ãšã©ãŒïŒ10123èšå®
ãµã€ãã®gatsby-configãèªã¿èŸŒãããšãããšãã«ãšã©ãŒãçºçããŸããã ãšã©ãŒãä¿®æ£ããŠãåè©Šè¡ããŠãã ããã
ãšã©ãŒïŒ/project/gatsby-config.jsïŒ1
ïŒfunctionïŒexportsãrequireãmoduleã__ filenameã__ dirnameïŒ{import urlJoin from "url-join";
^^^^^^
SyntaxErrorïŒã¢ãžã¥ãŒã«ã®å€éšã§ã€ã³ããŒãã¹ããŒãã¡ã³ãã䜿çšã§ããŸãã `` `
å¥ã®æ¹æ³ãšããŠã gatsby-*
ãã¡ã€ã«ã«TypeScriptãã§ããŸãã
äžèšã®ç§ã®esmããªãã¯ã¯ã¡ããã©æ©èœããªããªããŸããã gatsbyãšããŒãããŒãžã§ã³ãããŒã«ããã¯ããŠããããã¯æç¶ããŸãã
誰ããåãåé¡ãæ±ããŠããå Žåã¯ãããã§è©³çŽ°ã説æããŠãã ããïŒ //github.com/reaktivo/gatsby-esm/issues/1
@caycecollinsä¿®æ£ãèŠã€ããŸãããïŒ
@wesbosç§ã¯ä»ã®ãšãães5requireã«æ»ãããšã«ãªããŸãã:(
ç·šéïŒããã§ããªãã®ææ°ã®ä¿®æ£ã«æ°ã¥ããŸããhttps://github.com/gatsbyjs/gatsby/issues/24925 ...è©ŠããŠã¿ãŸãïŒ
ããã«1æéèŠåŽããæçµçã«ããã«ãçšã«package.jsonã«äœãå ¥ããŠããNetlifyUIæ§æãåªå ãããŠããããšãããããŸããã ãããæããã«ãªã£ãã®ã¯ãnetlify.tomlãè¿œå ãããŸã§ã¯ãããŸããã§ããã 話ã®æèšãNetlify UIãã«ãèšå®ãç·šéããããããããã¯ãªã¢ããŠæ§æã«å ¥ããŸãã ç§ã¯åŸè ã奜ãã§ãã ð
[build]
command = "npm run build"
publish = "public"
ã¯ããããã¯ç§ã®ããã«åããããšã¯æ³šç®ã«å€ããŸãïŒ
"build": "NODE_OPTIONS='-r esm' gatsby build",
ãããŒãå€æŽãé£ããããšã¯ç解ããŠããŸãããESã¢ãžã¥ãŒã«ã¯çŸåšJavascriptã§ãããããã¡ã³ããã_Javascriptã®ãµããŒãã«å察ããŠ_æŠã£ãŠããã®ãèŠãã®ã¯æ¬åœã«æ®å¿µã§ã...ç¹ã«JDaltonãšåœŒã®esm
ããã±ãŒãžããšãŠãç°¡åã§ãïŒ
PSããªããæ°ä»ããŠããªããããããªãããã€ãã®é¢é£ãã詳现...
esm
ããã±ãŒãžã®package.json
ãšã³ããªãšã次ã®è¡ã§ããrequire = require("esm")(module/*, options*/)
module.exports = require("./main.js")
ãã®ã¢ãžã¥ãŒã«ã¯ãKnexãªã©ã®äž»èŠãªã©ã€ãã©ãªã§ãã§ã«åºã䜿çšãããŠããŸãã æåéã135 ... _å_ã®ã©ã€ãã©ãªããã§ã«ããã«äŸåããŠããŸãïŒ
Lodashã®äœæè ã«ãã£ãŠæžãããã®ã§ãããã¯ãžã¥ãã¢ãšã³ãžãã¢ã®æåã®NPMãããžã§ã¯ãã§ã¯ãããŸãããçµéšè±å¯ãªå°é家ã«ãã£ãŠæžãããæ¬æ Œçãªã©ã€ãã©ãªã§ãã
ããã¯å®å
šã«äžäœäºææ§ããããŸãïŒèª°ããéESã¢ãžã¥ãŒã«ã³ãŒãã§import
ãŸãã¯export
ã䜿çšããªãéãïŒãããŠãããã¯æéã®å€æãããJSçŠæ¢ããŒã¯ãŒãã§ãããšç¢ºä¿¡ããŠããŸãïŒãã¹ãŠååšããŸãã³ãŒãã¯åãããã«æ©èœãç¶ããŸã
ããã©ãŒãã³ã¹äžã®æžå¿µãããå Žåã¯ãã³ãã³ãã©ã€ã³åŒæ°ã䜿çšããŠãã®æ©èœããã²ãŒãããŒããããã®ã¯ç°¡åã§ãïŒããšãã°ã knex
ã¯ãã®ã«ãŒããéžæããŸããïŒ
ã€ãŸããã3è¡ã®ã³ãŒãã§ææ°ã®Javascriptèšèªæ©èœãæã«å ¥ããããšããããšã§ããããããšã...ãããšæŠãã®ã§ããïŒ å©ç¹ã
èå³ãããã°ãPRãæåºãããŠããã ããŸã:)
誰ããæçµçãªè§£æ±ºçãæäŸãããã®ã¹ã¬ãããããã¯ã§ããŸããïŒ
äŒè©±ããŸã è¡ãããŠããéåžžã«éèŠã§ãããéããŠããããã«èŠããåé¡ã§ãã¹ãŠã®ã³ã¡ã³ããã¹ããã³ã°ãããã®ãã³ã¹ãè¡ãã®ã¯å«ãã§ããããã¹ãŠã®ã³ã¡ã³ãããµããã«ãããŠãã©ããæã芪æãç«ãŠãŠãããæè¯ã®è§£æ±ºçã§ããå¯èœæ§ãé«ããã確èªããããšããŸãð
ç§ãèšã£ãããã«ãé£ããéšåã¯esm
ã¢ãžã¥ãŒã«ãæ©èœãããããšã§ã¯ãããŸããïŒããã¯ç©äºãéåžžã«åçŽã«ããããã«èšèšãããŠããŸãã Gatsbyã¢ãŒããã¯ãã£ã«ã€ããŠäœãç¥ã£ãŠããã°ãèªåã§PRãæåºããŸãïŒãŸããå¥ã®äž»èŠãªã©ã€ãã©ãªãããã䜿çšããŠããããšã確èªããã«ã¯ãKnexãèŠãŠãã ããïŒã
é£ããã®ã¯ããã®ç¥èãæã£ãã¡ã³ããã«æ°ãé ã£ãŠãããããšã§ã:(
ãã¹ãŠã®ã¡ã³ãããææ°ã®JSã¢ãžã¥ãŒã«æ§æãå人çã«å«ã£ãŠãããšããŠããå°ãªããšããŠãŒã¶ãŒã®ããã«å¯Ÿãã欲æ±ãç解ã§ãããšæãã§ããã...ãããããã®åé¡ãå床éãããšããæåŠãããããä¿®æ£ããããšã¯èšããŸã§ããããŸããïŒç¹°ãè¿ãã«ãªããŸããããããã2è¡ã®ã³ãŒãã ãã§ïŒããã§ã¯ãªãããšã瀺åããŠããŸãã ãã®ããŒã ãä»ã®åé¡ã«ã©ãã»ã©åªããŠããããèãããšãæ£çŽãªãšããç§ã«ã¯æ··ä¹±ããŠããŸãã
ç§ãèšã£ãããã«ãé£ããéšåã¯
esm
ã¢ãžã¥ãŒã«ãæ©èœãããããšã§ã¯ãããŸãããããã¯ç©äºãéåžžã«åçŽã«ããããã«èšèšãããŠããŸãã Gatsbyã¢ãŒããã¯ãã£ã«ã€ããŠäœãç¥ã£ãŠããã°ãèªåã§PRãæåºããŸãïŒãŸããå¥ã®äž»èŠãªã©ã€ãã©ãªãããã䜿çšããŠããããšã確èªããã«ã¯ãKnexãèŠãŠãã ããïŒãé£ããã®ã¯ããã®ç¥èãæã£ãã¡ã³ããã«æ°ãé ã£ãŠãããããšã§ã:(
ãã¹ãŠã®ã¡ã³ãããææ°ã®JSã¢ãžã¥ãŒã«æ§æã«å¯ŸããŠå人çãªãå«ãããæã£ãŠãããšããŠããå°ãªããšããŠãŒã¶ãŒã®ããã«å¯Ÿãã欲æ±ãç解ã§ãããšæãã§ããã...ãããããã®åé¡ãå床éãããšããæåŠãããããä¿®æ£ããããšã¯èšããŸã§ããããŸããïŒç¹°ãè¿ãã«ãªããŸããããããã2è¡ã®ã³ãŒãã ãã§ïŒããã§ã¯ãªãããšã瀺åããŠããŸãã ãã®ããŒã ãä»ã®åé¡ã«ã©ãã»ã©åªããŠããããèãããšãæ£çŽãªãšããç§ã«ã¯æ··ä¹±ããŠããŸãã
ãã®ä»¶ã«ã€ããŠã¡ã³ããããäžèšãé¡ãããŸãã
æãåèã«ãªãã³ã¡ã³ã
ç§ã¯ããã«esmã䜿çšãããããŸã§ã®ãšããæ©èœããŸãã ãããç§ãããããšã§ãïŒ
esm
ïŒnpm i esm
ïŒãã€ã³ã¹ããŒã«ããŸãgatsby-node.js
ãå«ãåããã©ã«ãïŒã«gatsby-node.esm.js
ãšãããã¡ã€ã«ãäœæããŸãgatsby-node.js
ããgatsby-node.esm.js
移åããŸãgatsby-node.js
ãã¹ãŠã®ã³ãŒãã次ã®ããã«çœ®ãæããŸããjavascript require = require('esm')(module) module.exports = require('./gatsby-node.esm.js')
import
ã§gatsby-node.esm.js
ãå¿ èŠãªã ã䜿çšããŠãã ããð@KyleAMathewsãã®æ¹æ³ã§ãããè¡ãããšã«ã€ããŠäœãå±éºãªããšã¯ãããŸããïŒ å®å šã§ããã°ãããã¥ã¡ã³ãã«è¿œå ã§ããããã§ã:)