問題タブ [npm-scripts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - ソースマップを解釈するときに、PostCSS cli が stdin からの最大行長に遭遇する
package.json で次のように sass コンパイルをセットアップしました。
これは、しばらくの間、外部ソースマップを作成するために正常に実行されています。ただし、最近、postcss がクローズされていないコメント エラーをスローして失敗しています。問題のコメントは、sourceMappingURL への開始タグです。sourceMappingURL は、node-sass によって--source-map-embed true
コマンドを使用して dataUri として埋め込まれています。これは、出力を stdout にパイプしている場合、node-sass がそれらをファイルに書き込まないように見えるため、ソース マップがこのメソッドでまったく機能するために必要です。 .
dataUri が長すぎて、ある種の最大行長に達していると思います。この制限が bash (私は Mac OSX を使用しています)、node.js、または postcss-cli にあるのかどうかはわかりません。手動で増やすことができるものですか、それとも他の回避策はありますか?
更新:さらに調査した結果、この問題は、process.stdin から不完全なファイルを返すread-file-stdin
に起因するようです。私はノード ストリームにあまり詳しくありませんが、データの読み取りにread-file-stdin
依存しており、ストリーム チャンクを一緒に収集するためにgather-streamを使用していると思います。ただし、これは機能していません。スクリプトを次のように変更すると、次の場所は次のとおりです。stream.pipe
css
npm run sass -s | test.js
test.js
コンソール出力は不完全なファイルです
javascript - 別の出力に基づいて条件付き npm スクリプトを設定する方法は?
これは、npm スクリプトを使用して何かをセットアップしようとしたときに以前に遭遇した問題ですが、解決できていません。これが可能かどうかさえわかりませんが、できればソリューションが Mac と Windows の両方の環境で動作することを望みます。
npm スクリプトのロジックの一部を、互いに呼び出すことができるいくつかの短いスクリプトに分割しようとしています。これを変数と組み合わせることで、他の開発者にとってスクリプトの保守性と読みやすさが向上します。
ただし、ある npm スクリプトの結果を別のスクリプトで使用する方法がわかりません。私はほとんど bash の専門家ではないので、ここで助けを求めています (:
この例では、開発者が Docker (仮想) 環境を簡単に起動できるようにするスクリプトをセットアップしようとしています。
package.json で:
ここでは、実行する Docker コンテナーの名前を含む変数を用意しています: $npm_package_config_docker_container
.
実行するとnpm run container_running
、コンテナーが実行されている場合は true が返され、コンテナーが存在しない場合はエラーがスローされますecho 'false'
。ここまでは順調ですね。
ここで、開始スクリプトでコンテナーが実行されているかどうかを確認したいと思います。実行されている場合は、コンテナーを停止して新しい実行を開始し、実行されていない場合は新しい実行を開始します。だから、このようなもの:
問題は、これをどのように達成するかです。おまけの質問として、Mac と Windows の両方の環境で互換性のある方法でこれを行うことができますか?
どんな助けでも大歓迎です!!
npm - Windows と Linux で動作する方法で npm のファイルをループするにはどうすればよいですか?
複数のファイルに対して単一のコマンド (jshint) を実行しようとしています。私のpackage.jsonには含まれています
"lint": "jshint *.js **/*.js"
ただし、これは Windows では惨めに失敗します。Windows では、複数のファイルを反復する構文は次のとおりです。
複数のファイルで単一の npm スクリプト (jshint など) を実行する、プラットフォームに依存しない簡単な方法はありますか?
(私は一般的な解決策に興味があります。複数のファイルをサポートするjshintの代わりにnode-jslintを使用するための参照がここにあります...しかし、IMO jshint >> jslint)。
node.js - ファイルを変更するときに nodemon を使用して npm スクリプトで複数のサーバー ファイルを再起動する方法
フォルダー上のファイルを変更するときに、npm スクリプトで nodemon を使用して 2 つのサーバー ファイルを再起動したい
ここに私のnpmスクリプト