問題タブ [npm-publish]
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.
npm - npm、.npmignore を使用せずに src dir を公開しないようにする
このnpm publish
コマンドは tarball ( src
dir を使用) を作成し、それをレジストリに公開します。
src
の使用を避けてディレクトリを除外する方法はあり.npmignore
ますか?
vue.js - vue コンポーネントを npm に公開する場合、どの依存関係を追加する必要がありますか?
npm に公開したい vue コンポーネントを作成しましたが (既にそうしています)、依存関係として vue を追加する必要があるかどうか、またそれがコンポーネントのサイズに影響するかどうか疑問に思っていました。現在、私のpackage.jsonは次のようになっています
次のコマンドで vue-cli-service を使用してコンポーネントをビルドしています
私が構築しているかなり小さなコンポーネントの場合、バンドルのサイズは比較的大きいと感じました
これは私の出力です:
ファイル | サイズ | Gzipされた
dist\my_component.umd.min.js | 61.67 キロバイト | 18.62KiB
dist\my_component.umd.js | 143.66 キロバイト | 32.61 キロバイト
dist\my_component.common.js | 143.27 キロバイト | 32.49KiB
簡単に言えば、vue への依存によってバンドル サイズが増加するかどうか、および単一のコンポーネントを公開するときに依存関係として実際に必要かどうか疑問に思っていました。
typescript - グローバル型を使用するが、それを使用してプロジェクトを拡張しない NPM パッケージを作成する方法は?
質問:
多くの異なるファイルで多くのタイプを再利用するプロジェクトは、スクリプト ファイルで定義されたタイプを利用できます。これらのタイプはプロジェクト全体でグローバルに表示され、インポートする必要はありません。公式ハンドブックを参照してください:
import
TypeScript では、ECMAScript 2015 と同様に、トップレベルのorを含むすべてのファイルがexport
モジュールと見なされます。import
逆に、トップレベルまたは宣言のないファイルexport
は、コンテンツがグローバル スコープで (したがってモジュールでも) 利用可能なスクリプトとして扱われます。
私は自分のプロジェクトでこれらのグローバル型を使用しましたが、うまく機能しました。しかし、その後、プロジェクトを NPM モジュールに変えることにしました。そのモジュールの「グローバル」タイプは、モジュール自体に対してのみ表示される必要があります。
<reference/>
最初に、 s と.を追加せずに、モジュールをそのまま公開しましたtypeRoots
。ただし、モジュールを別のプロジェクトにインポートすると、TypeScript はグローバル型を見つけることができず、コンパイルできませんでした。
次に、グローバル型を使用するモジュール内のすべてのファイルに追加<reference path="types.ts" />
してから、もう一度プッシュしました。驚いたことに、これにより、モジュールだけでなく、それを使用するプロジェクト全体でも型が使用可能になり、ローカル型とモジュールの型の間で競合が発生しました。
(私が公開したモジュールの両方のバージョンは、それ自体で完全にコンパイル可能であったことに注意してください。問題はnpm i
、別のプロジェクトで使用してモジュールをインストールしたときに始まりました。)
モジュールの「グローバル」タイプをモジュールでのみ使用できるようにする方法はありますか?
私のモジュールの構造:
最初の公開では、index.ts
通常foo.ts
のコードのみが含まれていたため、プロジェクト時に型が認識されませんでした。モジュールを 2 回目に公開したときに、と の///<reference path="types.ts"/>
両方に追加しindex.ts
ましたfoo.ts
。これはpath="types.d.ts"
、コンパイルされたファイルindex.d.ts
とfoo.d.ts
.
パッケージ.json:
tsconfig.json:
javascript - node_modules に存在するにもかかわらず、peerDependency が定義されていません
NPM ライブラリの構築を学んでいます。そのソースコードはHEREにあります。アプリケーション (ライブラリを使用する) が自分でインストールできるようにlodash
、peerDependency として配置しました。
問題は、@a6kme/math
アプリケーションにライブラリ ( ) をインストールしているときにUnhandled Rejection (ReferenceError): lodash is not defined
、ライブラリのインポートでエラーが発生することです。確認したところ、他のライブラリを介してアプリケーションによってlodashがインストールされています。(フォルダ内lodash
に存在しnode_modules
ます)
===コードリポジトリからのいくつかのファイル===
じぶんのpackage.json
じぶんのwebpack.config.js
じぶんの.babelrc
コード リポジトリにgithub の問題を作成しました。どこを見ればいいのか教えてください。
webpack - npm パッケージ (公開予定) をできるだけ小さくする方法
npm パッケージのサイズを最小化する方法と、npm パッケージを公開するときに webpack を依存関係として追加する必要がありますか。以下の記事を参照しました: https://medium.com/quick-code/publish-your-own-react-component-as-npm-package-under-5-minutes-8a47f0cb92b9
初めての npm パッケージを公開しました。しかし、npm パッケージからインストールすると、「67 個のパッケージが追加されました」と表示されます。なぜ67パッケージなのですか?
これは package.json の依存関係セクションです: "dependencies": { "react": "16.8.6", "webpack": "4.32.2", "react-icons": "3.7.0" },