Npm'nin farklı bir dizinde nasıl başlamasını sağlayabilirim?


292

Genellikle cduygulama dizinine girer ve çalıştırırım npm start.

npm startBir yol parametresiyle çalışmanın bir yolu olmalı . Ancak, npm start belgeleri böyle bir özellik içermez.

Ben sadece npm start ./myappişe yaramaz bulmak için kendimi denedim . Bunu yapmanın bir yolu var mı?

Yanıtlar:


473

Bu tek astar çalışmalıdır:

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

Sorumlu doktor


18
Çalışmıyor. Geçerli dizinde package.json dosyasını bulmaya çalışıyorum.
Shashwat Kumar

@ShashwatKumar bunu yapmanın işe yarayan bir yolunu buldunuz mu?
Sulu

3
Ben sadece bu komutu bir package.jsonde sahip bir klasörde çalıştırmak için test ve npm doğru path/to/your/appbulmak için doğru izledi package.json. Hangi npm sürümünü kullanıyorsunuz?
Amaury Liet

3
10.x ve npm 6.9.0 düğümü ile macOS10.14.x üzerinde çalışan tek astar mükemmel çalıştı. Teşekkür ederim.
Tod

3
Bunun için dokümanlar --prefix: docs.npmjs.com/misc/config#prefix
lealceldeiro

88

Komutun altında dosya projectiçeren bir klasör neredepackage.json

npm run --prefix project ${COMMAND}

de çalışıyor. Docker tabanlı uygulamalarda kullanışlıdır.


21

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

& inside package.json aşağıdaki betiği ekle

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

6
Önyükleme öncesi komut dosyasının ne yaptığını açıklayabilir misiniz?
junvar

Bu çapraz platform değil. Sadece Unix üzerinde çalışır, Windows gibi tek toplarda çalışmaz.
Jack Giffin

18

Buraya google'dan geldim, bu yüzden başkalarıyla alakalı yarnolabilir:

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

6

Bu tek astar da çalışmalıdır:

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

Bu dizini uyguladıktan sonra geçerli dizinin / path / olarak / uygulamanıza değiştirileceğini unutmayın. Çalışma dizinini korumak için:

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

Bu çözümü kullandım çünkü düzenlediğim bir program yapılandırma dosyası komut satırı argümanlarının belirtilmesini desteklemedi.


2
"-1" düğmesini kullanırken lütfen yorum ekleyin, böylece ziyaretçilerin "neden sorun değil" hakkında bir ipucu olmasını
sağlayın

6
Ben inmedim. Ancak yan etkiler nedeniyle indirildiğine inanıyorum. Çözüm saf değil, geçerli dizini değiştirir.
Vladimir Serykh

Bu aslında çok yaygın bir çözümdür, yapılacak tek gelişme, bahsedilen yan etkilerden kaçınmak için parantez eklemektir. Bununla birlikte, yukarıdaki çözümler tamamen NPM'ye bağlı oldukları için benim tercihimde daha iyidir.
Rafał Wrzeszcz

cd -Yan efekti kaldırmak için ucuna ekleyebilirsiniz .
babca

@babca npm startbaşarısız olmadıkça ... bunu birden fazla ifadeye bölmelisiniz
Andreas

2

Bu npm sayı listesi başına , npm config aracılığıyla bir çözüm yapılabilir

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

Pencerelerin altında, scriptsolabilir{ start: "node ./%npm_package_config_path%" }

Sonra komut satırını aşağıdaki gibi çalıştırın

npm start --foo:path=myapp

indirilen paketler için hangi komut dosyası yapılabilir? İndirilen npm paketinden js dosyasına erişmek istiyorum
Hardik Rana
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.