30秒を教えてあげます.Type ScriptでNPMに包んでください.
3019 ワード
文章はThe 30 second gide to publishing a typescript package to npmから訳して、部分の内容は修正があります.
この文章はJS、TS、NPMの知識が必要です.普通のNPMバッグを書いたほうがいいです.ないなら、ネットで教程が多いです.全部簡単です.
npmパッケージを発表したことがある学生は全部知っています.npmプロジェクトを初期化して、直接
1.
この行の文はTypes Scriptがコンパイルする時に自動的に
2.
他の人があなたのカバンを導入すると、この言葉はTSコンパイラにタイプ定義ファイルを探す場所を教えてくれます.ここの
3.
コード倉庫では、一般的にコンパイルコードを含む必要はありません.ソースを含むだけでいいです.ですから、私たちは
4.運転ビルドコマンド
次にnpmにリリースします.
公開前にローカルパケットをデバッグする場合は、
以下は配置完了後のpackage.jsonです.
この文章はJS、TS、NPMの知識が必要です.普通のNPMバッグを書いたほうがいいです.ないなら、ネットで教程が多いです.全部簡単です.
npmパッケージを発表したことがある学生は全部知っています.npmプロジェクトを初期化して、直接
npm init -y
を使えばいいです.tsを使うなら、直接tsc --init
を使えばいいです.この2つの動作は、package.json
およびtsconfig.json
ファイルを生成する.その後、以下の手順で設定を変更します.1.
"declaration": true
をあなたのtsconfig.json
に追加します.この行の文はTypes Scriptがコンパイルする時に自動的に
d.ts
ファイルを作成すると教えています.プライベートタイプを使用すると、このタイプも外部APIの一部になりますが、このタイプの利用者はこのタイプのタイプの推論が得られないので、TSコンパイラも警告します.この場合、タイプの前にexport
を追加するだけでいいです.2.
"types": "index.d.ts"
をあなたのpackage.json
に追加します.他の人があなたのカバンを導入すると、この言葉はTSコンパイラにタイプ定義ファイルを探す場所を教えてくれます.ここの
.d.ts
ファイルとmain
入り口はフォルダを指しています.だから、通常、あなたのpackage.jsonは次の2つの行を含みます."main": "dist/index.js",
"types": "dist/index.d.ts"
(上記のデフォルトはtsconfig.json
で構成されたoutDir
がdist
ディレクトリを指しています)3.
dist
ディレクトリが.gitignore
に追加されたことを保証します.コード倉庫では、一般的にコンパイルコードを含む必要はありません.ソースを含むだけでいいです.ですから、私たちは
dist
カタログにバージョン管理をしません.また、これはnpmにdist
ディレクトリをリリースすることにも影響しません.4.運転ビルドコマンド
tsc
を実行すると、すべてのソースコードがコンパイルされます.これは非常に便利です.通常はpackage.json
にコマンドを追加できます."build": "tsc"
5.npm pblishを実行する次にnpmにリリースします.
package.json
に以下のコマンドを追加します."release": "tsc && npm publish"
私はstandard-version
を使って、commitizen
と協力してnpmカバンを発表する習慣があります.興味がある人は自分で調べてみてください.公開前にローカルパケットをデバッグする場合は、
npm link
コマンドを使用して、本プロジェクトのルートディレクトリがnpm link
を実行し、デバッグするデモトプロジェクトでnpm link
を実行して、コードに直接導入して使用すれば良い.以下は配置完了後のpackage.jsonです.
{
"name": "my-ts-lib",
"version": "1.0.0",
"description": "My npm package written in TS",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"build": "tsc",
"release": "tsc && npm publish"
},
"author": "savokiss",
"license": "MIT",
"devDependencies": {
"typescript": "^3.5.3"
}
}
以下は最終のtsconfig.jsonです.{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"lib": ["es2017", "es7", "es6", "dom"],
"declaration": true,
"outDir": "dist",
"strict": true,
"esModuleInterop": true
},
"exclude": ["node_modules", "dist"]
}