web-dev-qa-db-ja.com

LinuxはWindows \\フォルダーのルートパスに相当しますか?

プロジェクトには、次のようなルートパスがあります。

"start": "set NODE_ENV=local&&node_modules\\.bin\\webpack --config webpack.dev.config.js"

Linuxでの同等物はどうですか? Debianを使用していますが、この代替手段の使用に問題があります。

"start": "set NODE_ENV=local&&node_modules//.bin//webpack --config webpack.dev.config.js"

または:

"start": "set NODE_ENV=local&&node_modules/.bin/webpack --config webpack.dev.config.js"
2
Javier C.

これは、Linuxやすでに調整済みのパスセパレーターとは関係ありません。

nODE_ENV = localを設定します

これは、POSIXシェルで環境変数を設定する方法ではありません。

&&

これは、POSIXシェルでナンス環境変数設定を使用してコマンドを実行する方法ではありません。

変数の設定方法など、POSIXシェルスクリプトの基本を学ぶ必要があります。

cross-envのようなものを見てください。しかし、実際には、Windows上でPOSIXシェルのように機能するため、POSIXシェルスクリプトをすでに知っていることを前提としています。

cross-env NODE_ENV = local node_modules/.bin/webpack…

その前に、そもそもPOSIXシェルスクリプトを学ぶ必要があります。

NODE_ENV = local node_modules/.bin/webpack…

この種のことは、Linux(オペレーティングシステムカーネル)やDebianに固有のものではありません。

2
JdeBP

あなたの主な質問に答えるには:

バックスラッシュはスケープ文字であるため、文字列に入れる場合は、別のバックスラッシュでスケープする必要があります。したがって、ダブルバックスラッシュは単にシングルバックスラッシュを意味します。

Linuxでは、スラッシュを使用してパスを区切るため、パスを2倍にする必要はありません。

したがって、パスをWindowsからLinux形式に変換するには、ダブルバックスラッシュをフォワードスラッシュに置き換えるだけです。

ただし、コマンドの残りの部分では、これがどこにあるか、これをどのように使用するかなど、より多くの情報を提供する必要があります。

0
Sohail

LinuxでWindowsのdouble- <reversesolidus>に相当するものは「//」です。

セクション4.13基本定義ボリュームのパス名解決は次のように述べています。

...パス名が2つの連続する文字で始まる場合、先頭の文字に続く最初のコンポーネントは実装定義の方法で解釈される場合がありますが、3つ以上の先頭の文字は単一の文字として扱われます。 .。

そのため、一部のシステムでは、ホスト名として解釈される場合があります。

ただし、これはパス文字列の最初のコンポーネントにのみ適用されます。文字列の残りの部分については、単一の「/」と同じです。構成ファイルのドキュメントを確認してください。

0
DannyNiu