インターネット接続できない環境を作成し、その環境にnpmパッケージをインストールした手順を備忘録として残しておきます。
- インターネット接続できない環境にインストールするもの
- インターネット接続できる環境での作業
- 環境情報
- nodist のインストール
- Node.js のインストール
- npmbox のインストール & BOX化
- fp-ts のインストール & BOX化
- monocle-ts のインストール & BOX化
- newtype-ts のインストール & BOX化
- express のインストール & BOX化
- forever のインストール & BOX化
- newman のインストール & BOX化
- newman-reporter-htmlextra のインストール & BOX化
- swagger のインストール & BOX化
- swagger-ui のインストール & BOX化
- swagger-cli のインストール & BOX化
- swagger-codegen のインストール & BOX化
- @stoplight/prism-cli のインストール & BOX化
- @stoplight/prism-http のインストール & BOX化
- インストール済パッケージ一覧の確認
- 環境情報
- インターネット接続できない環境での作業
- インストール済パッケージの確認
インターネット接続できない環境にインストールするもの
インターネット接続できる環境で予め作成、または入手します。
npmパッケージ込みのzipファイル
以下の何れか
- npmbox-include-v12.18.2.zip
- npmbox-include-v12.18.2-01-ts.zip
- npmbox-include-v12.18.2-02-express.zip
- npmbox-include-v12.18.2-03-newman.zip
- npmbox-include-v12.18.2-04-swagger.zip
- npmbox-include-v12.18.2-05-stoplight.zip
※NodeJs、Nodistのインストーラは使用しません。
npmbox化したパッケージ
npmunbox可
問題なくnpmunboxで戻せたパッケージとなります。
- fp-ts@2.6.7
- monocle-ts@2.2.0
- newtype-ts@0.3.4
- express@4.17.1
- forever@3.0.0
- newman@5.1.0
- swagger@0.7.5
- swagger-ui@3.28.0
- swagger-cli@4.0.3
- swagger-codegen@0.1.1
npmunbox不可(使用しませんが一応)
npmunbox時、エラーとなり戻せませんでしたが、一応リストアップしておきます。
- newman-reporter-htmlextra@1.17.2
- @stoplight/prism-cli@3.3.5
- @stoplight/prism-http@3.3.5
インストール時エラー(使用しませんが一応)
- npmbox@4.2.1
その他
- 7-Zip (インストーラー)
- swagger-editor (zip)
- Stoplight Studio (インストーラー)
- Postman (7.27.1) (インストーラー)
インターネット接続できる環境での作業
環境情報
- Windows 10
nodist のインストール
nodistのページにインストーラーがありますが、今回は使用しません。
Node.js のインストール
バイナリ版のzipを選択します。今回は「node-v12.18.2-win-x64.zip」を使用しました。
ファイルの配置
ダウンロードしたファイルを展開し、任意の場所に配置します。
今回配置した場所
C:\app\nodejs\v12.18.2
環境変数の設定
Path (追加)
C:\app\nodejs\v12.18.2
NODE_PATH
C:\app\nodejs\v12.18.2\node_modules
(参考)までNodist の場合
最初はNodistを使用していましたが、box戻しエラーでハマりましたので使用しないことにしました。参考までにインストール方法を備忘録として残しておきます。
$ nodist add v12.18.2
でインストールが始まります。
nodist -v
0.9.1
nodist add v12.18.2
12.18.2 [===============] 29126/29126 KiB 100% 0.0s
12.18.2
nodist v12.18.2
v12.18.2
v12.18.2 (global)
node -v
v12.18.2
nodist
(x64)
11.13.0
> 12.18.2 (global: v12.18.2)
npmのインストール (Nodist の場合)
インストールしたnodejsに適合したnpmをインストールします。
nodist npm match
npm match
https://codeload.github.com/npm/cli/tar.gz/v6.14.5 [============= ] 4803/5489 KiB 87% 1.5s
npm -v
6.14.5
npmbox のインストール & BOX化
オフラインインストールするために使用します。
npm install -g npmbox
npm WARN deprecated jade@0.26.3: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated mkdirp@0.3.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecated and your application is vulnerable. Please use tar module instead: https://npmjs.com/tar
[..................] - loadRequestedDeps: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecat[..................] - loadRequestedDeps: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecat[..................] - loadRequestedDeps: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecat[..................] | loadRequestedDeps: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecat[..................] | loadRequestedDeps: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecatnpm WARN deprecated to-iso-string@0.0.2: to-iso-string has been deprecated, use @segment/to-iso-string instead.
npm WARN deprecated minimatch@3.0.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
C:\app\Nodist\bin\npmbox -> C:\app\Nodist\bin\node_modules\npmbox\bin\npmbox
C:\app\Nodist\bin\npmunbox -> C:\app\Nodist\bin\node_modules\npmbox\bin\npmunbox
+ npmbox@4.2.1
added 340 packages from 807 contributors in 38.962s
※ 警告は出ますが、そのまま進めることにします。以後も同様。
npmbox自体をBOX化(パッケージ化)します。
npmbox npmbox
Boxing npmbox...
Querying npmbox
Querying fs-extra@1.0.0
Querying is@3.1.0
:
Downloading xtend@4.0.2
Packing C:\workdir\npmbox.npmbox...
一旦 zip作成
「C:\app\nodejs\v12.18.2」フォルダを7-Zipで圧縮し、「npmbox-include-v12.18.2.zip」を作成します。
fp-ts のインストール & BOX化
npm install -g fp-ts
+ fp-ts@2.6.7
added 1 package from 1 contributor in 2.026s
fp-tsをBOX化(パッケージ化)します。
npmbox fp-ts
Boxing fp-ts...
Querying fp-ts
Downloading fp-ts@2.6.7
Packing C:\workdir\fp-ts.npmbox...
monocle-ts のインストール & BOX化
npm install -g monocle-ts
npm WARN monocle-ts@2.2.0 requires a peer of fp-ts@^2.0.0 but none is installed. You must install peer dependencies yourself.
+ monocle-ts@2.2.0
added 1 package from 1 contributor in 0.574s
monocle-tsをBOX化(パッケージ化)します。
npmbox monocle-ts
Boxing monocle-ts...
Querying monocle-ts
Downloading monocle-ts@2.2.0
Packing C:\workdir\monocle-ts.npmbox...
newtype-ts のインストール & BOX化
npm install -g newtype-ts
npm WARN newtype-ts@0.3.4 requires a peer of fp-ts@^2.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN newtype-ts@0.3.4 requires a peer of monocle-ts@^2.0.0 but none is installed. You must install peer dependencies yourself.
+ newtype-ts@0.3.4
added 1 package from 1 contributor in 1.558s
newtype-tsをBOX化(パッケージ化)します。
npmbox newtype-ts
Boxing newtype-ts...
Querying newtype-ts
Downloading newtype-ts@0.3.4
Packing C:\workdir\newtype-ts.npmbox...
一旦 zip作成
「C:\app\nodejs\v12.18.2」フォルダを7-Zipで圧縮し、「npmbox-include-v12.18.2-01-ts.zip」を作成します。
express のインストール & BOX化
npm install -g express
+ express@4.17.1
added 50 packages from 37 contributors in 8.377s
expressをBOX化(パッケージ化)します。
npmbox express
Boxing express...
:
Packing C:\workdir\express.npmbox...
forever のインストール & BOX化
常に起動しながらさまざまなサービスを提供できるようになります。
npm install -g forever
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
C:\app\Nodist\bin\forever -> C:\app\Nodist\bin\node_modules\forever\bin\forever
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules\forever\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
+ forever@3.0.0
added 241 packages from 178 contributors in 29.319s
foreverをBOX化(パッケージ化)します。
npmbox forever
Boxing forever...
Querying forever
Querying async@^1.5.2
Querying cliff@^0.1.10
:
Downloading yargs@3.32.0
Packing C:\workdir\forever.npmbox...
一旦 zip作成
「C:\app\nodejs\v12.18.2」フォルダを7-Zipで圧縮し、「npmbox-include-v12.18.2-02-express.zip」を作成します。
newman のインストール & BOX化
Postmanコレクションをコマンドラインから実行できるものです。
npm install -g newman
C:\app\Nodist\bin\newman -> C:\app\Nodist\bin\node_modules\newman\bin\newman.js
+ newman@5.1.0
added 156 packages from 197 contributors in 27.875s
newmanをBOX化(パッケージ化)します。
npmbox newman
Boxing newman...
:
Packing C:\workdir\newman.npmbox...
newman-reporter-htmlextra のインストール & BOX化
newmanの実行結果をHTML形式のレポートとして出力するのに必要です。
npm install -g newman-reporter-htmlextra
npm WARN deprecated gulp-header@1.8.12: Removed event-stream from gulp-header
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN newman-reporter-htmlextra@1.17.2 requires a peer of newman@>=4 but none is installed. You must install peer dependencies yourself.
+ newman-reporter-htmlextra@1.17.2
added 753 packages from 782 contributors in 435.019s
newman-reporter-htmlextraをBOX化(パッケージ化)します。
npmbox newman-reporter-htmlextra
Boxing newman-reporter-htmlextra...
Querying newman-reporter-htmlextra
:
Downloading year@0.2.1
Packing C:\workdir\newman-reporter-htmlextra.npmbox...
一旦 zip作成
「C:\app\nodejs\v12.18.2」フォルダを7-Zipで圧縮し、「npmbox-include-v12.18.2-03-newman.zip」を作成します。
swagger のインストール & BOX化
npm install -g swagger
npm WARN deprecated swagger-editor@2.10.5: No longer maintained, please upgrade to swagger-editor@3.
npm WARN deprecated jade@0.26.3: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated to-iso-string@0.0.2: to-iso-string has been deprecated, use @segment/to-iso-string instead.
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated mkdirp@0.3.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated URIjs@1.16.1: package renamed to "urijs" (lower-case), please update accordingly
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
C:\app\Nodist\bin\swagger-project -> C:\app\Nodist\bin\node_modules\swagger\bin\swagger-project.js
C:\app\Nodist\bin\swagger -> C:\app\Nodist\bin\node_modules\swagger\bin\swagger.js
npm WARN lifecycle The node binary used for scripts is C:\app\Nodist\bin\node.exe but npm is using C:\app\Nodist\v-x64\12.18.2\node.exe itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> core-js@2.6.11 postinstall C:\app\Nodist\bin\node_modules\swagger\node_modules\core-js
> node -e "try{require('./postinstall')}catch(e){}"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
> nodemon@1.19.4 postinstall C:\app\Nodist\bin\node_modules\swagger\node_modules\nodemon
> node bin/postinstall || exit 0
Love nodemon? You can now support the project via the open collective:
> https://opencollective.com/nodemon/donate
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules\swagger\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
+ swagger@0.7.5
added 435 packages from 526 contributors in 60.942s
swaggerをBOX化(パッケージ化)します。
npmbox swagger
Boxing newman-reporter-html...
Querying swagger
:
Packing C:\workdir\swagger.npmbox...
swagger-ui のインストール & BOX化
npm install -g swagger-ui
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated core-js@1.2.7: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN lifecycle The node binary used for scripts is C:\app\Nodist\bin\node.exe but npm is using C:\app\Nodist\v-x64\12.18.2\node.exe itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> core-js@2.6.11 postinstall C:\app\Nodist\bin\node_modules\swagger-ui\node_modules\core-js
> node -e "try{require('./postinstall')}catch(e){}"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock
Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
+ swagger-ui@3.28.0
added 121 packages from 270 contributors in 22.336s
swagger-uiをBOX化(パッケージ化)します。
npmbox swagger-ui
Boxing swagger-ui...
:
Querying swagger-client@=3.10.9
:
Downloading swagger-client@3.10.9
Downloading swagger-ui@3.28.0
:
Packing C:\workdir\swagger-ui.npmbox...
swagger-cli のインストール & BOX化
npm install -g swagger-cli
C:\app\Nodist\bin\swagger-cli -> C:\app\Nodist\bin\node_modules\swagger-cli\swagger-cli.js
+ swagger-cli@4.0.3
added 48 packages from 29 contributors in 7.693s
swagger-cliをBOX化(パッケージ化)します。
npmbox swagger-cli
Boxing swagger-cli...
:
Querying js-yaml@^3.14.0
:
Downloading js-yaml@3.14.0
Downloading swagger-cli@4.0.3
:
Packing C:\workdir\swagger-cli.npmbox...
swagger-codegen のインストール & BOX化
npm install -g swagger-codegen
+ swagger-codegen@0.1.1
added 15 packages from 49 contributors in 4.257s
swagger-codegenをBOX化(パッケージ化)します。
npmbox swagger-codegen
Boxing swagger-codegen...
Querying swagger-codegen
Querying debug@^2.2.0
:
Downloading wordwrap@1.0.0
Packing C:\workdir\swagger-codegen.npmbox...
一旦 zip作成
「C:\app\nodejs\v12.18.2」フォルダを7-Zipで圧縮し、「npmbox-include-v12.18.2-04-swagger.zip」を作成します。
@stoplight/prism-cli のインストール & BOX化
npm install -g @stoplight/prism-cli
C:\app\Nodist\bin\prism -> C:\app\Nodist\bin\node_modules\@stoplight\prism-cli\dist\index.js
npm WARN lifecycle The node binary used for scripts is C:\app\Nodist\bin\node.exe but npm is using C:\app\Nodist\v-x64\12.18.2\node.exe itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> fast-xml-parser@3.17.4 postinstall C:\app\Nodist\bin\node_modules\@stoplight\prism-cli\node_modules\fast-xml-parser
> node tasks/postinstall.js || exit 0
Love fast-xml-parser? Check https://amitkumargupta.work for more projects and contribution.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules\@stoplight\prism-cli\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN io-ts-types@0.5.7 requires a peer of monocle-ts@^2.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN io-ts-types@0.5.7 requires a peer of newtype-ts@^0.3.2 but none is installed. You must install peer dependencies yourself.
+ @stoplight/prism-cli@3.3.5
added 295 packages from 305 contributors in 36.207s
@stoplight/prism-cliをBOX化(パッケージ化)します。
npmbox @stoplight/prism-cli
Boxing @stoplight/prism-cli...
:
Packing C:\workdir\@stoplight%2fprism-cli.npmbox...
@stoplight/prism-http のインストール & BOX化
npm install -g @stoplight/prism-http
+ @stoplight/prism-http@3.3.5
added 218 packages from 273 contributors in 21.461s
@stoplight/prism-httpをBOX化(パッケージ化)します。
npmbox @stoplight/prism-http
Boxing @stoplight/prism-http...
:
Packing C:\workdir\@stoplight%2fprism-http.npmbox...
zip作成
「C:\app\nodejs\v12.18.2」フォルダを7-Zipで圧縮し、「npmbox-include-v12.18.2-05-stoplight.zip」を作成します。
インストール済パッケージ一覧の確認
npm ls -g --depth=0
C:\app\Nodist\bin
+-- @stoplight/prism-cli@3.3.5
+-- @stoplight/prism-http@3.3.5
+-- express@4.17.1
+-- forever@3.0.0
+-- fp-ts@2.6.7
+-- monocle-ts@2.2.0
+-- newman@5.1.0
+-- newman-reporter-htmlextra@1.17.2
+-- newtype-ts@0.3.4
+-- npmbox@4.2.1
+-- swagger@0.7.5
+-- swagger-cli@4.0.3
+-- swagger-codegen@0.1.1
`-- swagger-ui@3.28.0
インターネット接続できない環境での作業
環境情報
- Windows 10
アプリケーションのインストール
インターネット接続できる環境で入手、作成したものをインストールします。
- 7-Zip (インストーラー)
- Stoplight Studio
- Postman (7.27.1)
zipファイルの展開
用途に応じてzipファイルの何れかを展開します。
例として、「npmbox-include-v12.18.2-05-stoplight.zip」を展開することとして、以降の説明を進めます。
環境変数の設定
「システムのプロパティ」「詳細設定タブ」から環境変数に追加します。
以下は「C:\app\nodejs\v12.18.2」に展開した例です。
Path
C:\app\nodejs\v12.18.2
NODE_PATH
C:\app\nodejs\v12.18.2\node_modules
インストール済パッケージの確認
PS C:\app\nodejs\npmbox> npm ls -g --depth=0
C:\app\nodejs\v12.18.2
+-- @stoplight/prism-cli@3.3.5
+-- @stoplight/prism-http@3.3.5
+-- express@4.17.1
+-- forever@3.0.0
+-- fp-ts@2.6.7
+-- monocle-ts@2.2.0
+-- newman@5.1.0
+-- newman-reporter-htmlextra@1.17.2
+-- newtype-ts@0.3.4
+-- npm@6.14.5
+-- npmbox@4.2.1
+-- swagger@0.7.5
+-- swagger-cli@4.0.3
+-- swagger-codegen@0.1.1
`-- swagger-ui@3.28.0
zipを展開し、コマンドパスが通っていれば、確認できます。
作業はこれで終了です。お疲れさまでした。
うまくいかなかった点
インターネットで検索すると、公式ページ同様の手順が説明されている記事が多かったです。
うまくいかなかった点を残しておきます。
npmbox のインストール
npmbox.npmboxを使ってnpmbox自体をインストールします。
tar --no-same-owner --no-same-permissions -xvzf npmbox.npmbox
展開された.npmbox.cacheディレクトリを使用してnpmboxをインストールします。
npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox
エラーが発生した場合はキャッシュクリアを行って、リトライしてみます。
npm cache --force clean
npm WARN using --force I sure hope you know what you are doing.
ダメでした。。。ハマりました。
ローカルインストールしたいのに、ネット接続してしまう。。。
npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/npmbox failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org
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! C:\workdir\.npmbox.cache\_logs\2020-07-06T22_22_58_493Z-debug.log
ログはこんな感じ↓
7 silly fetchPackageMetaData error for npmbox@latest request to https://registry.npmjs.org/npmbox failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org
8 timing stage:rollbackFailedOptional Completed in 1ms
9 timing stage:runTopLevelLifecycles Completed in 187ms
10 verbose type system
11 verbose stack FetchError: request to https://registry.npmjs.org/npmbox failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org
11 verbose stack at ClientRequest.<anonymous> (C:\app\nodejs\node_modules\npm\node_modules\node-fetch-npm\src\index.js:68:14)
11 verbose stack at ClientRequest.emit (events.js:315:20)
11 verbose stack at TLSSocket.socketErrorListener (_http_client.js:426:9)
11 verbose stack at TLSSocket.emit (events.js:315:20)
11 verbose stack at emitErrorNT (internal/streams/destroy.js:92:8)
11 verbose stack at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
11 verbose stack at processTicksAndRejections (internal/process/task_queues.js:84:21)
いろいろ調べていると、.npmrc という設定ファイルがあるとのこと。
場所はこちら↓でした。
C:\Users\[ユーザー名]\.npmrc
.npmrcファイルの内容を確認すると
prefix=C:\app\Nodist\bin
でした。試しに以下に変更しました。
prefix=C:\app\Nodist\bin
registry=http://127.0.0.1
そして、ネット切断状態で再試行するとー
npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox
npm ERR! code E404
npm ERR! 404 Not Found - GET http://127.0.0.1/npmbox
npm ERR! 404
npm ERR! 404 'npmbox@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
はい。もちろんレジストリを作っていないので、404 Not Foundですね。
では、元に戻します。
prefix=C:\app\Nodist\bin
試しに再実行してみるか↓
<pre class="command-line" data-prompt="PS C:\workdir>" data-output="2-16"><code class="language-powershell">npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox
npm WARN registry Using stale data from https://registry.npmjs.org/ because the host is inaccessible -- are you offline?
npm WARN registry Using stale data from https://registry.npmjs.org/ due to a request error during revalidation.
npm WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecated and your application is vulnerable. Please use tar module instead: https://npmjs.com/tar
[..................] \ fetchMetadata: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecated a[..................] \ fetchMetadata: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecated a[..................] \ fetchMetadata: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecated a[..................] \ fetchMetadata: WARN deprecated tar.gz@1.0.2: ⚠️ WARNING ⚠️ tar.gz module has been deprecat
:
:
:</code></pre>
えっ、えっ。たまたまなのか、ネット接続なしで動作しました。
(その後、再現できませんでした)
npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox
npm WARN registry Using stale data from https://registry.npmjs.org/ because the host is inaccessible -- are you offline?
npm WARN registry Using stale data from https://registry.npmjs.org/ due to a request error during revalidation.
:
C:\app\Nodist\bin\npmbox -> C:\app\Nodist\bin\node_modules\npmbox\bin\npmbox
C:\app\Nodist\bin\npmunbox -> C:\app\Nodist\bin\node_modules\npmbox\bin\npmunbox
+ npmbox@4.2.1
added 334 packages from 813 contributors in 26.34s
インストール済パッケージ一覧の確認を確認してみると
npm ls -g --depth=0
C:\app\Nodist\bin
`-- npmbox@4.2.1
npmbox がインストールされているっぽい。
最新パッケージ化チェックするかは、.npmrcファイルの更新日時を見ている???
わかりませんが、とりあえず、npmbox がインストールできました。
インストール先は .npmrcのプレフィックス設定を変えると変更できるようです。
prefix=C:\app\nodejs\bin
:
C:\app\nodejs\bin\npmunbox -> C:\app\nodejs\bin\node_modules\npmbox\bin\npmunbox
C:\app\nodejs\bin\npmbox -> C:\app\nodejs\bin\node_modules\npmbox\bin\npmbox
+ npmbox@4.2.1
added 334 packages from 813 contributors in 25.806s
各パッケージのインストール
npmboxがインストールされた後は、npmbox(npmunbox)にて各パッケージをインストールします。
npmunbox -g fp-ts.npmbox
npmunbox -g monocle-ts.npmbox
npmunbox -g newtype-ts.npmbox
npmunbox -g express.npmbox
npmunbox -g forever.npmbox
npmunbox -g newman.npmbox
npmunbox -g newman-reporter-htmlextra.npmbox
npmunbox -g swagger.npmbox
npmunbox -g swagger-ui.npmbox
npmunbox -g swagger-cli.npmbox
npmunbox -g swagger-codegen.npmbox
npmunbox -g @stoplight%2fprism-cli.npmbox
npmunbox -g @stoplight%2fprism-http.npmbox
以下のnpmboxはnpmunboxでエラーが発生します。。。
- newman-reporter-htmlextra
- @stoplight%2fprism-cli.npmbox
- @stoplight%2fprism-http.npmbox
npmunbox -g @stoplight%2fprism-cli.npmbox
Unboxing @stoplight%2fprism-cli.npmbox...
Unpacking @stoplight%2fprism-cli.npmbox...
Installing @stoplight/prism-cli...
An error occurred while installing @stoplight/prism-cli.
@stoplight/prism-cli was not installed.
Done.
Error: getaddrinfo ENOTFOUND registry.npmjs.org
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:66:26) {
errno: 'ENOTFOUND',
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'registry.npmjs.org',
parent: '@stoplight/http-spec'
}
ということで、npmunboxを使用するのは諦め、zip化しちゃえー
という備忘録でした。