npmを別のディレクトリで開始するにはどうすればよいですか?


291

私は通常cdappディレクトリに移動してから実行しnpm startます。

npm startパスパラメータを使用して実行する方法があるはずだと私は感じています。ただし、npm startのドキュメントにはそのような機能は含まれていません。

自分で試してみましたがnpm start ./myappうまくいきません。それを行う方法はありますか?

回答:


472

このワンライナーは動作するはずです:

npm start --prefix path/to/your/app

対応するドキュメント


18
機能していません。現在のディレクトリでpackage.jsonを検索しようとしています。
— Shashwat Kumar 2017

@ShashwatKumarこれを行うための実用的な方法を見つけたことがありますか?
— ジューシーな

3
私は、このコマンドをa package.jsonが含まれているフォルダで実行することをテストしました。npmは正しくに従って正しいpath/to/your/appを見つけましたpackage.json。どのバージョンのnpmを使用していますか?
— Amaury Liet、

3
ノード10.xとnpm 6.9.0のmacOS10.14.xで実行すると、ワンライナーは完全に機能しました。ありがとうございました。
— トッド

3
--prefixここのドキュメント:docs.npmjs.com/misc/config#prefix
— lealceldeiro

88

コマンドの下にproject、package.jsonファイルを含むフォルダがあります

npm run --prefix project ${COMMAND}

も機能しています。Dockerベースのアプリケーションで役立ちます。


21

npm start --prefix path/to/your/app

&package.json内に次のスクリプトを追加します

"scripts": {
   "preinstall":"cd $(pwd)"
}

6
プリインストールスクリプトの機能を説明できますか?
— junvar

これはクロスプラットフォームではありません。Unixでのみ機能し、Windowsのような奇妙なボールでは機能しません。
— ジャックギフィン

18

私はグーグルから来たので、他の人に関係があるかもしれません:yarnあなたが使うことができるので:

yarn --cwd /path/to/your/app run start 

6

このワンライナーも動作するはずです:

(cd /path/to/your/app && npm start)

このコマンドを実行すると、現在のディレクトリが/ path / to / your / appに変更されることに注意してください。作業ディレクトリを保持するには:

(cd /path/to/your/app && npm start && cd -)

私が編集していたプログラム構成ファイルがコマンドライン引数の指定をサポートしていなかったため、このソリューションを使用しました。


2
「-1」ボタンを使用する場合は、コメントを追加して、訪問者に「なぜ問題があるのか​​」の手掛かりを
— 与えてください

6
私は反対票を投じなかった。しかし、私はそれが副作用のために反対投票されたと信じています。ソリューションは純粋ではなく、現在のディレクトリを変更します。
— Vladimir Serykh

これは実際には非常に一般的な解決策です。行われる唯一の改善は、前述の副作用を回避するために括弧を追加することです。ただし、上記のソリューションはNPMに完全に依存しているため、私の意見ではより優れています。
— ラファウWrzeszcz

cd -最後に追加して副作用を取り除くことができます。
— babca

@babca npm start失敗しない限り...複数のステートメントに分割する必要があります
— Andreas

2

このnpm問題リストに従って、1つの回避策はnpm configを介して実行できます

name: 'foo'
config: { path: "baz" },
scripts: { start: "node ./$npm_package_config_path" }

窓の下では、scripts可能性があり{ start: "node ./%npm_package_config_path%" }

次に、以下のようにコマンドラインを実行します

npm start --foo:path=myapp

ダウンロードしたパッケージに対してどのようなスクリプトを実行できますか?ダウンロードしたnpmパッケージからjsファイルにアクセスしたいとします
— Hardik Rana
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.