mirror of
https://github.com/kou029w/nodejs-hands-on.git
synced 2025-02-04 16:18:43 +00:00
Compare commits
8 commits
ae113e239b
...
0abd59bef6
Author | SHA1 | Date | |
---|---|---|---|
0abd59bef6 | |||
524ce7acee | |||
c46520825a | |||
092bff67eb | |||
e8fb9fcb7f | |||
ccb86e04dc | |||
1e5999a7de | |||
|
60106d6f3b |
11 changed files with 455 additions and 89 deletions
4
.githooks/pre-commit
Executable file
4
.githooks/pre-commit
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
npm run format
|
||||||
|
npm run test
|
4
.github/workflows/github-pages.yml
vendored
4
.github/workflows/github-pages.yml
vendored
|
@ -10,7 +10,7 @@ jobs:
|
||||||
environment: github-pages
|
environment: github-pages
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: Homebrew/actions/setup-homebrew@master
|
- uses: Homebrew/actions/setup-homebrew@master
|
||||||
- id: brew_cache
|
- id: brew_cache
|
||||||
run: echo "::set-output name=dir::$(brew --cache)"
|
run: echo "::set-output name=dir::$(brew --cache)"
|
||||||
|
@ -22,7 +22,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
brew bundle
|
brew bundle
|
||||||
mdbook build
|
mdbook build
|
||||||
- uses: actions/upload-pages-artifact@v1
|
- uses: actions/upload-pages-artifact@v2
|
||||||
with:
|
with:
|
||||||
path: book
|
path: book
|
||||||
- uses: actions/deploy-pages@v2
|
- uses: actions/deploy-pages@v2
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
overrides:
|
|
||||||
- files: "*.md"
|
|
||||||
options:
|
|
||||||
parser: markdown-nocjsp
|
|
434
package-lock.json
generated
Normal file
434
package-lock.json
generated
Normal file
|
@ -0,0 +1,434 @@
|
||||||
|
{
|
||||||
|
"name": "nodejs-hands-on",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "nodejs-hands-on",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "CC0-1.0",
|
||||||
|
"devDependencies": {
|
||||||
|
"markdown-link-check": "^3.11.2",
|
||||||
|
"prettier": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/async": {
|
||||||
|
"version": "3.2.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
|
||||||
|
"integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node_modules/boolbase": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node_modules/chalk": {
|
||||||
|
"version": "5.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
|
||||||
|
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.17.0 || ^14.13 || >=16.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/cheerio": {
|
||||||
|
"version": "1.0.0-rc.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
|
||||||
|
"integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"cheerio-select": "^2.1.0",
|
||||||
|
"dom-serializer": "^2.0.0",
|
||||||
|
"domhandler": "^5.0.3",
|
||||||
|
"domutils": "^3.0.1",
|
||||||
|
"htmlparser2": "^8.0.1",
|
||||||
|
"parse5": "^7.0.0",
|
||||||
|
"parse5-htmlparser2-tree-adapter": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/cheeriojs/cheerio?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/cheerio-select": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"boolbase": "^1.0.0",
|
||||||
|
"css-select": "^5.1.0",
|
||||||
|
"css-what": "^6.1.0",
|
||||||
|
"domelementtype": "^2.3.0",
|
||||||
|
"domhandler": "^5.0.3",
|
||||||
|
"domutils": "^3.0.1"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/fb55"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/commander": {
|
||||||
|
"version": "10.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
|
||||||
|
"integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/css-select": {
|
||||||
|
"version": "5.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
|
||||||
|
"integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"boolbase": "^1.0.0",
|
||||||
|
"css-what": "^6.1.0",
|
||||||
|
"domhandler": "^5.0.2",
|
||||||
|
"domutils": "^3.0.1",
|
||||||
|
"nth-check": "^2.0.1"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/fb55"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/css-what": {
|
||||||
|
"version": "6.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
|
||||||
|
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/fb55"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/debug": {
|
||||||
|
"version": "3.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
||||||
|
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"ms": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/dom-serializer": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"domelementtype": "^2.3.0",
|
||||||
|
"domhandler": "^5.0.2",
|
||||||
|
"entities": "^4.2.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/domelementtype": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
|
||||||
|
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/fb55"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/domhandler": {
|
||||||
|
"version": "5.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
|
||||||
|
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"domelementtype": "^2.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/fb55/domhandler?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/domutils": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"dom-serializer": "^2.0.0",
|
||||||
|
"domelementtype": "^2.3.0",
|
||||||
|
"domhandler": "^5.0.3"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/fb55/domutils?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/entities": {
|
||||||
|
"version": "4.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
||||||
|
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/html-link-extractor": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/html-link-extractor/-/html-link-extractor-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"cheerio": "^1.0.0-rc.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/htmlparser2": {
|
||||||
|
"version": "8.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
||||||
|
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
"https://github.com/fb55/htmlparser2?sponsor=1",
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/fb55"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"domelementtype": "^2.3.0",
|
||||||
|
"domhandler": "^5.0.3",
|
||||||
|
"domutils": "^3.0.1",
|
||||||
|
"entities": "^4.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/iconv-lite": {
|
||||||
|
"version": "0.6.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||||
|
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/is-absolute-url": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/is-relative-url": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-PkzoL1qKAYXNFct5IKdKRH/iBQou/oCC85QhXj6WKtUQBliZ4Yfd3Zk27RHu9KQG8r6zgvAA2AQKC9p+rqTszg==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"is-absolute-url": "^4.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.16"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/isemail": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"punycode": "2.x.x"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/link-check": {
|
||||||
|
"version": "5.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/link-check/-/link-check-5.2.0.tgz",
|
||||||
|
"integrity": "sha512-xRbhYLaGDw7eRDTibTAcl6fXtmUQ13vkezQiTqshHHdGueQeumgxxmQMIOmJYsh2p8BF08t8thhDQ++EAOOq3w==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"is-relative-url": "^4.0.0",
|
||||||
|
"isemail": "^3.2.0",
|
||||||
|
"ms": "^2.1.3",
|
||||||
|
"needle": "^3.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lodash": {
|
||||||
|
"version": "4.17.21",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||||
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node_modules/markdown-link-check": {
|
||||||
|
"version": "3.11.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.11.2.tgz",
|
||||||
|
"integrity": "sha512-zave+vI4AMeLp0FlUllAwGbNytSKsS3R2Zgtf3ufVT892Z/L6Ro9osZwE9PNA7s0IkJ4onnuHqatpsaCiAShJw==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"async": "^3.2.4",
|
||||||
|
"chalk": "^5.2.0",
|
||||||
|
"commander": "^10.0.1",
|
||||||
|
"link-check": "^5.2.0",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
|
"markdown-link-extractor": "^3.1.0",
|
||||||
|
"needle": "^3.2.0",
|
||||||
|
"progress": "^2.0.3"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"markdown-link-check": "markdown-link-check"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/markdown-link-extractor": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-r0NEbP1dsM+IqB62Ru9TXLP/HDaTdBNIeylYXumuBi6Xv4ufjE1/g3TnslYL8VNqNcGAGbMptQFHrrdfoZ/Sug==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"html-link-extractor": "^1.0.5",
|
||||||
|
"marked": "^4.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/marked": {
|
||||||
|
"version": "4.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
|
||||||
|
"integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
|
||||||
|
"dev": true,
|
||||||
|
"bin": {
|
||||||
|
"marked": "bin/marked.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ms": {
|
||||||
|
"version": "2.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node_modules/needle": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"debug": "^3.2.6",
|
||||||
|
"iconv-lite": "^0.6.3",
|
||||||
|
"sax": "^1.2.4"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"needle": "bin/needle"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 4.4.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/nth-check": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"boolbase": "^1.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/fb55/nth-check?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/parse5": {
|
||||||
|
"version": "7.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
|
||||||
|
"integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"entities": "^4.4.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/inikulin/parse5?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/parse5-htmlparser2-tree-adapter": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"domhandler": "^5.0.2",
|
||||||
|
"parse5": "^7.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/inikulin/parse5?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/prettier": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"prettier": "bin/prettier.cjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/progress": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
||||||
|
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/punycode": {
|
||||||
|
"version": "2.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
||||||
|
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/safer-buffer": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node_modules/sax": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,10 +5,12 @@
|
||||||
"author": "Kohei Watanabe <kou029w@gmail.com>",
|
"author": "Kohei Watanabe <kou029w@gmail.com>",
|
||||||
"license": "CC0-1.0",
|
"license": "CC0-1.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"prepare": "git config core.hooksPath .githooks",
|
||||||
|
"test": "find src -name '*.md' -exec markdown-link-check {} +",
|
||||||
"format": "prettier --write ."
|
"format": "prettier --write ."
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"prettier": "^2.6.2",
|
"markdown-link-check": "^3.11.2",
|
||||||
"prettier-plugin-md-nocjsp": "^1.2.0"
|
"prettier": "^3.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
|
|
||||||
## ヒント: Node.jsとは
|
## ヒント: Node.jsとは
|
||||||
|
|
||||||
公式サイト: [Node.js](https://nodejs.org/ja/)
|
公式サイト: [Node.js](https://nodejs.org/)
|
||||||
|
|
||||||
Node.jsは、オープンソースでクロスプラットフォームなJavaScript実行環境です。Webアプリケーションを中心に幅広い開発に使われています。
|
Node.jsは、オープンソースでクロスプラットフォームなJavaScript実行環境です。Webアプリケーションを中心に幅広い開発に使われています。
|
||||||
|
|
|
@ -11,7 +11,7 @@ VSCodeでNode.jsのプログラムのデバッグを行うには、Auto Attach (
|
||||||
|
|
||||||
設定から、Debug › JavaScript: Auto Attach Filter (`debug.javascript.autoAttachFilter`) を変更します (1)。
|
設定から、Debug › JavaScript: Auto Attach Filter (`debug.javascript.autoAttachFilter`) を変更します (1)。
|
||||||
|
|
||||||
`smart` を選択すると、VSCodeターミナルからNode.jsのプロセスを実行したとき[`--inspect`](https://nodejs.org/ja/docs/guides/debugging-getting-started/)スイッチが有効化され、自動的にデバッグを開始することができます (2)。
|
`smart` を選択すると、VSCodeターミナルからNode.jsのプロセスを実行したとき[`--inspect`](https://nodejs.org/en/docs/guides/debugging-getting-started)スイッチが有効化され、自動的にデバッグを開始することができます (2)。
|
||||||
|
|
||||||
自動アタッチを行うにはVSCode内のターミナルを使用しなければなりません。
|
自動アタッチを行うにはVSCode内のターミナルを使用しなければなりません。
|
||||||
また、Auto Attachを有効にした後、ターミナルを一度再起動する必要があります。これは、ターミナルの右上にある ⚠ アイコンをクリックするか、新しいターミナルを作成することで行えます (3)。
|
また、Auto Attachを有効にした後、ターミナルを一度再起動する必要があります。これは、ターミナルの右上にある ⚠ アイコンをクリックするか、新しいターミナルを作成することで行えます (3)。
|
||||||
|
@ -49,13 +49,13 @@ _Node.jsのデバッグ_
|
||||||
|
|
||||||
### 続行
|
### 続行
|
||||||
|
|
||||||
![続行](https://github.com/microsoft/vscode/raw/1.67.2/src/vs/workbench/contrib/debug/browser/media/continue-tb.png)<!-- @license https://github.com/microsoft/vscode/raw/1.67.2/LICENSE.txt -->
|
![続行](https://github.com/microsoft/vscode/raw/1.84.1/src/vs/workbench/contrib/debug/browser/media/continue-tb.png)<!-- @license https://github.com/microsoft/vscode/raw/1.84.1/LICENSE.txt -->
|
||||||
|
|
||||||
プログラムの実行を続けます。プログラムが終了するか次にブレークポイントが現れるまで実行し続けます。
|
プログラムの実行を続けます。プログラムが終了するか次にブレークポイントが現れるまで実行し続けます。
|
||||||
|
|
||||||
### ステップオーバー
|
### ステップオーバー
|
||||||
|
|
||||||
![ステップオーバー](https://github.com/microsoft/vscode/raw/1.67.2/src/vs/workbench/contrib/debug/browser/media/stepover-tb.png)<!-- @license https://github.com/microsoft/vscode/raw/1.67.2/LICENSE.txt -->
|
![ステップオーバー](https://github.com/microsoft/vscode/raw/1.84.1/src/vs/workbench/contrib/debug/browser/media/stepover-tb.png)<!-- @license https://github.com/microsoft/vscode/raw/1.84.1/LICENSE.txt -->
|
||||||
|
|
||||||
ステップオーバー、ステップイン、ステップアウトはステップ実行のための機能です。
|
ステップオーバー、ステップイン、ステップアウトはステップ実行のための機能です。
|
||||||
|
|
||||||
|
@ -63,13 +63,13 @@ _Node.jsのデバッグ_
|
||||||
|
|
||||||
### ステップイン
|
### ステップイン
|
||||||
|
|
||||||
![ステップイン](https://github.com/microsoft/vscode/raw/1.67.2/src/vs/workbench/contrib/debug/browser/media/stepinto-tb.png)<!-- @license https://github.com/microsoft/vscode/raw/1.67.2/LICENSE.txt -->
|
![ステップイン](https://github.com/microsoft/vscode/raw/1.84.1/src/vs/workbench/contrib/debug/browser/media/stepinto-tb.png)<!-- @license https://github.com/microsoft/vscode/raw/1.84.1/LICENSE.txt -->
|
||||||
|
|
||||||
ステップインは、もしその行に関数の呼び出しがあれば、その関数の最初の行に移動します。
|
ステップインは、もしその行に関数の呼び出しがあれば、その関数の最初の行に移動します。
|
||||||
|
|
||||||
### ステップアウト
|
### ステップアウト
|
||||||
|
|
||||||
![ステップアウト](https://github.com/microsoft/vscode/raw/1.67.2/src/vs/workbench/contrib/debug/browser/media/stepout-tb.png)<!-- @license https://github.com/microsoft/vscode/raw/1.67.2/LICENSE.txt -->
|
![ステップアウト](https://github.com/microsoft/vscode/raw/1.84.1/src/vs/workbench/contrib/debug/browser/media/stepout-tb.png)<!-- @license https://github.com/microsoft/vscode/raw/1.84.1/LICENSE.txt -->
|
||||||
|
|
||||||
ステップアウトは、もしその行が関数の中であれば、その関数の呼び出し元の次の行に移動します。
|
ステップアウトは、もしその行が関数の中であれば、その関数の呼び出し元の次の行に移動します。
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Node.jsはさまざまな方法でインストールできます。最も一般的な方法は、公式サイトからダウンロードしてインストールする方法です。
|
Node.jsはさまざまな方法でインストールできます。最も一般的な方法は、公式サイトからダウンロードしてインストールする方法です。
|
||||||
|
|
||||||
主要なプラットフォームのインストーラーは、[Node.jsの公式サイト - https://nodejs.org/ja/download/](https://nodejs.org/ja/download/) からダウンロードできます。
|
主要なプラットフォームのインストーラーは、[Node.jsの公式サイト - https://nodejs.org/en/download](https://nodejs.org/en/download) からダウンロードできます。
|
||||||
こちらから自分の環境に合わせたインストーラーをダウンロードし、それを実行します。
|
こちらから自分の環境に合わせたインストーラーをダウンロードし、それを実行します。
|
||||||
インストーラーを実行するとNode.jsがインストールされます。
|
インストーラーを実行するとNode.jsがインストールされます。
|
||||||
|
|
||||||
|
@ -10,11 +10,11 @@ Node.jsはさまざまな方法でインストールできます。最も一般
|
||||||
|
|
||||||
バージョンの説明を読むと「LTS (推奨版)」とあります。この「LTS」は何かというと、「Long Term Support」を表しており、「長期間安定的にサポートされます」ということを意味します。
|
バージョンの説明を読むと「LTS (推奨版)」とあります。この「LTS」は何かというと、「Long Term Support」を表しており、「長期間安定的にサポートされます」ということを意味します。
|
||||||
|
|
||||||
現在、Node.jsは毎年LTSリリースを行っています。このLTSリリースは、バージョン番号が偶数番号 (たとえば、16、18など) のものが採用されます。LTSリリースのバージョンは、重要なバグ修正を基本的に30ヶ月間行われることを保証されています。
|
現在、Node.jsは毎年LTSリリースを行っています。このLTSリリースは、バージョン番号が偶数番号 (たとえば、20、22など) のものが採用されます。LTSリリースのバージョンは、重要なバグ修正を基本的に30ヶ月間行われることを保証されています。
|
||||||
|
|
||||||
一方、それらのLTSリリースとは別に、Node.jsは6ヶ月ごとに最新版がリリースされます。この最新版はLTSリリースとは異なり、次のバージョンのリリース後にサポートされなくなります。したがって、一般的にはLTSリリースを採用するのがよいでしょう。
|
一方、それらのLTSリリースとは別に、Node.jsは6ヶ月ごとに最新版がリリースされます。この最新版はLTSリリースとは異なり、次のバージョンのリリース後にサポートされなくなります。したがって、一般的にはLTSリリースを採用するのがよいでしょう。
|
||||||
|
|
||||||
参照: [リリース | Node.js](https://nodejs.org/ja/about/releases/)
|
参照: [リリース | Node.js](https://nodejs.org/en/about/previous-releases)
|
||||||
|
|
||||||
## ターミナルの使用
|
## ターミナルの使用
|
||||||
|
|
||||||
|
@ -41,54 +41,5 @@ node -v
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ node -v
|
$ node -v
|
||||||
v16.16.0
|
v20.9.0
|
||||||
```
|
```
|
||||||
|
|
||||||
## NPMとプロキシの確認
|
|
||||||
|
|
||||||
プロキシが存在する環境では、ターミナルで `npm` コマンドを実行した際、次のようなエラーメッセージとともに失敗することがあります。
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ npm install --save-dev jest
|
|
||||||
npm ERR! code ENOTFOUND
|
|
||||||
npm ERR! syscall getaddrinfo
|
|
||||||
npm ERR! errno ENOTFOUND
|
|
||||||
npm ERR! network request to https://registry.npmjs.org/jest failed, reason: getaddrinfo ENOTFOUND proxy.example.com
|
|
||||||
npm ERR! network This is a problem related to network connectivity.
|
|
||||||
npm ERR! network In most cases you are behind a proxy or have bad network settings.
|
|
||||||
npm ERR! network
|
|
||||||
npm ERR! network If you are behind a proxy, please make sure that the
|
|
||||||
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
|
|
||||||
|
|
||||||
npm ERR! A complete log of this run can be found in:
|
|
||||||
npm ERR! /home/webdino/.npm/_logs/2022-01-12T07_20_33_146Z-debug-0.log
|
|
||||||
```
|
|
||||||
|
|
||||||
プロキシが存在する環境下でこのようなエラーが出る場合はNPMのプロキシの設定をします。もしこのようなエラーが出ない場合は下記の設定は不要です。
|
|
||||||
|
|
||||||
## NPMのプロキシの設定
|
|
||||||
|
|
||||||
環境変数 `HTTP_PROXY` と `HTTPS_PROXY` を作成してNPMのプロキシを設定します。下記ではプロキシーのURLの例として `http://user:pass@proxy.example.com:8080` を使用しますが、実際の自分の環境に合わせて適切なURLを設定しましょう。
|
|
||||||
|
|
||||||
### Windows - PowerShellの場合
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
$env:HTTP_PROXY="http://user:pass@proxy.example.com:8080"
|
|
||||||
$env:HTTPS_PROXY="http://user:pass@proxy.example.com:8080"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Windows - コマンドプロンプトの場合
|
|
||||||
|
|
||||||
```
|
|
||||||
set HTTP_PROXY=http://user:pass@proxy.example.com:8080
|
|
||||||
set HTTPS_PROXY=http://user:pass@proxy.example.com:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
### 上記以外 - BashやZshなどの場合
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export HTTP_PROXY=http://user:pass@proxy.example.com:8080
|
|
||||||
export HTTPS_PROXY=http://user:pass@proxy.example.com:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
設定を行ったら、通常通り `npm` コマンドを実行して、エラーが出ないことを確認してみましょう。
|
|
||||||
|
|
|
@ -22,11 +22,3 @@ VSCodeは公式サイトからダウンロードしてインストールでき
|
||||||
|
|
||||||
- Editor: Format On Save (保存時に自動整形) … `editor.formatOnSave`
|
- Editor: Format On Save (保存時に自動整形) … `editor.formatOnSave`
|
||||||
- 有効化することで、ファイルを保存する時に自動的にコードの整形を行います。
|
- 有効化することで、ファイルを保存する時に自動的にコードの整形を行います。
|
||||||
|
|
||||||
## プロキシの設定
|
|
||||||
|
|
||||||
プロキシが存在する環境では、拡張機能のインストールに失敗することがあります。
|
|
||||||
拡張機能のインストールが行える環境の場合、設定不要です。必要に応じて適切なプロキシのURLを設定します。
|
|
||||||
|
|
||||||
- Http: Proxy … `http.proxy`
|
|
||||||
- プロキシのURLを指定します。
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ _Prettierの拡張機能のインストール_
|
||||||
|
|
||||||
![コード整形後](assets/prettier-after.png)
|
![コード整形後](assets/prettier-after.png)
|
||||||
|
|
||||||
さらに[VSCodeの便利な設定](installing-vscode.html#%E4%BE%BF%E5%88%A9%E3%81%AA%E8%A8%AD%E5%AE%9A)のなかで紹介した「Format On Save」を有効にすることで自動整形を行うことができます。
|
さらに[VSCodeの便利な設定](installing-vscode.md#%E4%BE%BF%E5%88%A9%E3%81%AA%E8%A8%AD%E5%AE%9A)のなかで紹介した「Format On Save」を有効にすることで自動整形を行うことができます。
|
||||||
|
|
||||||
このようにして、Prettierによって簡単にコードを整形できます。
|
このようにして、Prettierによって簡単にコードを整形できます。
|
||||||
|
|
||||||
|
|
13
yarn.lock
13
yarn.lock
|
@ -1,13 +0,0 @@
|
||||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
||||||
# yarn lockfile v1
|
|
||||||
|
|
||||||
|
|
||||||
prettier-plugin-md-nocjsp@^1.2.0:
|
|
||||||
version "1.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/prettier-plugin-md-nocjsp/-/prettier-plugin-md-nocjsp-1.2.0.tgz#ad8fed862590c87bb2ad5e0b83dbb24d355ea2e8"
|
|
||||||
integrity sha512-ShX2dd8XoE6bi1zlY3U4yKJl/MN5LIdMDjVr//n/Dy6vWOWZdMqSFYeA7qcETTfUj6bTP4VfULDcQbgaJcgJKg==
|
|
||||||
|
|
||||||
prettier@^2.6.2:
|
|
||||||
version "2.6.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
|
|
||||||
integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
|
|
Loading…
Add table
Reference in a new issue