私はReactの学習を始めたばかりで、Facebookは次の既製のプロジェクトを提供することで、初期設定を簡素化するのに役立ちます。
スケルトンプロジェクトをインストールする必要がある場合はnpx create-react-app my-app
、コマンドラインで入力する必要があります。
Githubの中にFacebookが持っていない理由私は思っていたnpx create-react-app my-app
のではなくnpm create-react-app my-app
?
私はReactの学習を始めたばかりで、Facebookは次の既製のプロジェクトを提供することで、初期設定を簡素化するのに役立ちます。
スケルトンプロジェクトをインストールする必要がある場合はnpx create-react-app my-app
、コマンドラインで入力する必要があります。
Githubの中にFacebookが持っていない理由私は思っていたnpx create-react-app my-app
のではなくnpm create-react-app my-app
?
回答:
NPM
- パッケージを管理しますが、実行を容易にしません。-NodeパッケージNPX
を実行するためのツール。
NPX
NPM
バージョンにバンドルされています5.2+
NPM
それ自体は単にパッケージを実行するだけではありません。実際にはパッケージを実行しません。NPMを使用してパッケージを実行する場合は、package.json
ファイルにそのパッケージを指定する必要があります。
実行可能ファイルがNPMパッケージを介してインストールされると、NPMはそれらにリンクします。
./node_modules/.bin/
ディレクトリに「リンク」が作成されます。bin/
ディレクトリ(など/usr/local/bin
)から作成された「リンク」%AppData%/npm
があります。特定のプロジェクトにローカルにパッケージをインストールするかもしれません:
npm install some-package
ここで、NodeJSがそのパッケージをコマンドラインから実行するようにするとします。
$ some-package
上記は失敗します。唯一のグローバルにインストールパッケージには、自分の名前を入力して実行することができるだけ。
これを修正して実行するには、ローカルパスを入力する必要があります。
$ ./node_modules/.bin/some-package
ローカルにインストールされたパッケージを技術的に実行するには、packages.json
ファイルを編集し、scripts
セクションにそのパッケージを追加します。
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
次に、npm run-script
(またはnpm run
)を使用してスクリプトを実行します。
npm run some-package
npx
が、またはローカルプロジェクトバイナリに<command>
存在するかどうかを確認し$PATH
、実行します。したがって、上記の例で、ローカルにインストールされたパッケージを実行する場合は、次のようにsome-package
入力するだけです。
npx some-package
のもう1つの大きな利点npx
は、以前にインストールされていなかったパッケージを実行できることです。
$ npx create-react-app my-app
上記の例では、コマンドが実行されたパス内にreact
アプリのボイラープレートが生成され、使用するたびにアップグレードする必要なく、ジェネレーターまたはビルドツールの最新バージョンを常に使用できるようになります。
node.js
でくださいね?'npm'(ノードパッケージマネージャー)から利用できるのはなぜですか?
./node_modules/.bin
、$ PATHに追加してください。NPXは必要ありません。
npxはnpmパッケージランナーです(xはおそらくeXecuteを表します)。典型的な使用法は、パッケージをダウンロードして、一時的にまたは試用するために実行することです。
create-react-appはnpmパッケージであり、プロジェクトのライフサイクルで一度だけ実行されることが期待されています。したがって、npxを使用して、1つのステップでインストールおよび実行することをお勧めします。
マンページhttps://www.npmjs.com/package/npxで述べたように、npxはデフォルトでPATH内またはnode_modules / .binからコマンドを実行できます。
注: 少し調べてみると、create-react-appがノード環境内で実行されるJavascriptファイル(Linuxシステムでは/usr/lib/node_modules/create-react-app/index.jsを指す可能性がある)を指していることがわかります。 。これは単にチェックを行うグローバルツールです。実際の設定は、最新バージョンがプロジェクトにインストールされているreact-scriptsによって行われます。詳細については、https://github.com/facebook/create-react-appを参照してください。
NPMはパッケージマネージャーです。NPMを使用してnode.jsパッケージをインストールできます
NPXはnode.jsパッケージを実行するためのツールです。
そのパッケージをグローバルにインストールしたかローカルにインストールしたかは関係ありません。NPXは一時的にインストールして実行します。NPMは、package.jsonファイルを構成してスクリプトセクションに含めると、パッケージを実行することもできます。
したがって、ローカルまたはグローバルにインストールせずにノードパッケージをすばやくチェック/実行したい場合は、NPXを使用してください。
np M-マネージャー
np X-実行-覚えやすい
NPX:
Web開発者は、開発マシン上に数十のプロジェクトを持つことができ、各プロジェクトには、npmがインストールされた依存関係の固有のセットがあります。数年前、GruntやGulpのようなCLIアプリケーションを扱うための通常のアドバイスは、それらを各プロジェクトにローカルにインストールし、さらにコマンドラインから簡単に実行できるようにグローバルにインストールすることでした。
しかし、グローバルにインストールすると、解決した問題と同じ数の問題が発生しました。プロジェクトは、コマンドラインツールのさまざまなバージョンに依存している場合があり、多くの開発固有のCLIツールでオペレーティングシステムを汚染することも適切ではありません。今日、ほとんどの開発者はツールをローカルにインストールし、そのままにしておくことを好みます。
ツールのローカルバージョンを使用すると、開発者はグローバルにインストールされたバージョンのツールとの非互換性について心配することなく、GitHubからプロジェクトをプルできます。NPMはローカルバージョンをインストールするだけで、問題ありません。しかし、プロジェクト固有のインストールには問題がないわけではありません。プロジェクト内の正確な場所を指定したり、エイリアスをいじったりせずに、正しいバージョンのツールを実行するにはどうすればよいでしょうか。
それがnpxが解決する問題です。NPM 5.2に含まれる新しいツールであるnpxは、プロジェクト内から呼び出されたときに適切なアプリケーションを実行するのに十分スマートな小さなユーティリティです。
たとえば、プロジェクトローカルバージョンのmochaを実行したい場合は、プロジェクト内でnpx mochaを実行すると、期待どおりに動作します。
npxの便利な副次的な利点は、まだインストールされていないnpmパッケージが自動的にインストールされることです。したがって、ツールの作成者であるKatMarchánが指摘するように、地球環境を汚染しているBenny Hillに対処する必要なく、npx benny-hillを実行できます。
npxを試してみたい場合は、npmの最新バージョンに更新してください。
NPM can just install local versions
- 正しくありません。npm
グローバルにインストールでき、これは一般的な方法です。
npx
明示的にインストールせずにパッケージのコマンドを実行します。
ユースケース:
構文:
npx [options] [-p|--package <package>] <command> [command-arg]...
パッケージはオプションです:
npx -p uglify-js uglifyjs --output app.min.js app.js common.js
+----------------+ +--------------------------------------------+
package (optional) command, followed by arguments
例えば:
Start a HTTP Server : npx http-server
Lint code : npx eslint ./src
# Run uglifyjs command in the package uglify-js
Minify JS : npx -p uglify-js uglifyjs -o app.min.js app.js common.js
Minify CSS : npx clean-css-cli -o style.min.css css/bootstrap.css style.css
Minify HTML : npx html-minifier index-2.html -o index.html --remove-comments --collapse-whitespace
Scan for open ports : npx evilscan 192.168.1.10 --port=10-9999
Cast video to Chromecast : npx castnow http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4
詳細command
:
NPXの動作例を次に示します。npx cowsay hello
これをbashターミナルに入力すると、結果が表示されます。これの利点は、npxが一時的に牛追いをインストールしたことです。牛追いは恒久的に設置されていないため、パッケージの汚染はありません。これは、パッケージの汚染を避けたい1回限りのパッケージに最適です。
他の回答で述べたように、npxは、(npmで)パッケージをインストールしてから実行する前に構成する必要がある場合にも非常に役立ちます。たとえば、npmを使用してjson.packageファイルをインストールして構成し、構成済みのrunコマンドを呼び出す代わりに、代わりにnpxを使用します。実際の例:npx create-react-app my-app
create-react-app
ジェネレーターです。npx
行くインターネット、それはそれ(実行できるように、一時的にパッケージをダウンロードし、NPのX)。取得(および必要)するのは、コマンドを実行したローカルに保存された出力です。