質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

2回答

3152閲覧

npmパッケージが入れられず(動かず)苦労しています

Izumo1101

総合スコア49

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2021/04/23 07:05

node.jsを実行形式のファイルにするため、nexeの導入をしようとしていますが、かれこれ半年ほどできていません。予備のPCではできているのですが、そのPCを廃棄することになりいよいよ困ってきました。

cmd

1C:\Users******>node -v 2v14.16.1 3C:\Users******>nexe -v 4'nexe' は、内部コマンドまたは外部コマンド、 5操作可能なプログラムまたはバッチ ファイルとして認識されていません。

できているPCのnexeのバージョンが3.3.1なのでこれで試します。
やり方等間違っているかもです。

cmd

1C:\Users******>npm -g i nexe@3.3.1 2npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated 3npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated 4C:\Users******\AppData\Roaming\npm\nexe -> C:\Users******\AppData\Roaming\npm\node_modules\nexe\index.js 5+ nexe@3.3.1 6added 298 packages from 217 contributors in 47.717s

作業対象となるフォルダにも入れておきます。

cmd

1C:\Users******>cd C:\Users******\Desktop\Line 2 3C:\Users******\Desktop\Line>npm i nexe@3.3.1 4npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated 5npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated 6npm WARN webchat-socket-io@1.0.0 No repository field. 7 8+ nexe@3.3.1 9added 297 packages from 214 contributors and audited 343 packages in 47.455s 10 118 packages are looking for funding 12 run `npm fund` for details 13 14found 22 vulnerabilities (20 low, 1 moderate, 1 high) 15 run `npm audit fix` to fix them, or `npm audit` for details

確認です。

cmd

1C:\Users******\Desktop\Line>nexe -v 23.3.1

で、問題のエラーがこちら。本当に誰か助けてください!状態です。
nexeのヴァージョンやnodistでnodeのヴァージョンを落としたりもしましたが何をやっても駄目です。

cmd

1C:\Users******\Desktop\Line>nexe server.js 2i nexe 3.3.1 3√ Downloading pre-built Node.js 4√ Finished in 4.785s 5 6Error: https://github.com/nexe/nexe/releases/download/v3.0.0/windows-x64-14.16.1 is not available, create it using the --build flag 7 8See nexe -h for usage..

この訳も自信ありませんし、解決策も本当につきました。何が悪いのかどう変えればいいのか・・・。
どなたか教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

私のWindows10にインストールしてみましたが問題なかったです。
但しバージョン指定していないので、4.0ベータ版でしたが。

D:\Users\owner\Documents>npm install -g nexe + nexe@4.0.0-beta.18 added 210 packages from 149 contributors in 56.972s D:\Users\owner\Documents>node -v v14.16.1 D:\Users\owner\Documents>npm -v 6.14.12 D:\Users\owner\Documents>nexe -v 4.0.0-beta.18

投稿2021/04/24 13:50

technocore

総合スコア7337

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Izumo1101

2021/04/25 02:28

ありがとうございます。 インストールまでは4系でも大丈夫なのですが、引っ張ってくるファイルがない状態なのです。お定時の環境ではnexeが走り実行ファイル形式まで作成できましたのでしょうか?
guest

0

npm i nexe@3.3.1

バージョン古くないですか?

そう思った根拠・流れを解説していきます。

C:\Users******\Desktop\Line>nexe server.js i nexe 3.3.1 √ Downloading pre-built Node.js √ Finished in 4.785s Error: https://github.com/nexe/nexe/releases/download/v3.0.0/windows-x64-14.16.1 is not available, create it using the --build flag See nexe -h for usage..

まず一番最後のエラーに着目して、
https://github.com/nexe/nexe/releases/download/v3.0.0/windows-x64-14.16.1
このURLから実行ファイル的なものを受け取ろうとしたが失敗したと言ってるんですよね?
確かにブラウザのURL欄に貼り付けてDLを試みても404エラーで死んでる事が確認できます。

ならば、nexeコマンド実行時にこの実行ファイルを持ってこれれば良いんじゃないかと見当が付きます。
(他に手順とかあるかもしれないですけどね!)

上記のURLから右端をちょっと削ってリリースノート一覧を確認してみます。
https://github.com/nexe/nexe/releases?after=v3.3.4
windows-x64-14.16.1なるものは無いですね。

4系はBetaですが現行の3系最新バージョンはv3.3.7みたいです。
上記インストールしているものを全て削除して、v3.3.7のバージョンでやり直して見てください。


【追記】 Nexeのソースコードを読んできました

何で存在しないバージョンのバイナリを探しにいくのかを調査してきました。
それはターゲットの指定が雑な作りになっている事が原因のようです。

ソースコードの流れ

ts

1export function getTarget(target: string | Partial<NexeTarget> = ''): NexeTarget { 2 const currentArch = process.arch 3 let arch = currentArch in prettyArch ? prettyArch[process.arch] : (process.arch as NodeArch), 4 platform = prettyPlatform[process.platform], 5 version = process.version.slice(1) 6 7 if (typeof target !== 'string') { 8 target = `${target.platform}-${target.arch}-${target.version}` 9 }

これがデフォルトのターゲットです。

ざっくりと解説すると、
READMEのOptionsの項目にターゲット指定があります。
何のOS・CPUに対して実行ファイルを作るかなんて対象が分からないと何も出来ませんから、
ここが無記入の場合、現在起動しているマシンの情報を使って作る仕様になっているようですね。
(まぁそれが自然だわな)

そのデフォルトターゲットの式がこちら
${target.platform}-${target.arch}-${target.version}
JSではバッククォートでテンプレートリテラルが使えますが、その中身です。

これにprettyXxxの関数をかぶせて補正しているようですが、
現在のOS・CPU・Node.jsのバージョンを利用して実行ファイルをこしらえてくるようです。

ところがNode.jsはご存知のようにバージョン番号がころっころ変わるので、
星の数程バイナリを用意してある必要がるのですが、
結果はご覧の有様だよ!という感じです。

まぁ、Node.jsの元ネタのJSが機能閲覧出来たWebサイトが
JSエンジン更新でエラー出るようになったという事は許されないので、
下位互換周りはかなり強いのでちょっと古いバージョンでも良いので指定すれば良いと思います。

リリースノートのv3.3.3に書いてある最新のバイナリを取ってきて
nexe -t windows-x86-14.15.3
こんな感じにすれば先に進めるんじゃないですかね?

ダメなら該当のNode.jsのバージョンをどうにか連れてきて進める感じになるでしょう。
Dockerとかに任せた方が良いかもわからんね

投稿2021/04/23 11:29

編集2021/04/24 05:09
miyabi-sun

総合スコア21203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Izumo1101

2021/04/23 22:51

C:\Users******\Desktop\Line>nexe -v 3.3.7 C:\Users******\Desktop\Line>nexe server.js i nexe 3.3.7 √ Downloading pre-built Node.js √ Finished in 3.563s Error: https://github.com/nexe/nexe/releases/download/v3.3.3/windows-x64-14.16.1 is not available, create it using the --build flag See nexe -h for usage.. 回答ありがとうございます。試してみましたが結果は同じでした。 やはりwindows-x64-14.16.1を求めるようです。 ただやり取りの意味が分かったことは収穫です。自分でもいろいろ試してみますが、引き続きアドバイス等あればお願いします。
Izumo1101

2021/04/23 22:58

やはりこれはnodeのバージョンによって取りに行っているソースが違うと認識した方がよいのでしょうか。nodistは更新されていないからあまり使いたくないんですよね・・・
miyabi-sun

2021/04/24 05:12

興味がある分野だったので追加で調査してみました。 target指定で行けそうなので、その辺オマケで足しておきました。 無理ならcompile.jsみたいなNode.jsの実行ファイルを一段噛ませてから ターゲット指定してから実行という流れで解決出来ると思います。
Izumo1101

2021/04/25 02:26

ありがとうございます。 ターゲットを指定して走らせると、確かにexeファイルを生成することができました。ただそれをクリックしても本来表示されっぱなしのはずのコマンドプロンプト画面が一瞬で消えてしまいサーバーが立ち上がらないようです。 dockerですか、不勉強ですがこちらも調査したいと思います。 つまりnexe自体が不足あるライブラリだと認識できましたが、あまりに手軽なのでできれば使いたいところです。 ひとまずお礼まで。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問