Ini adalah jawaban yang lebih baru menggunakan TypeScript 1.8.10:
Struktur proyek saya adalah:
|
|--- src
|--- test
|--- dist <= My gulp file compiles and places the js, sourcemaps and .d.ts files here
| |--- src
| |--- test
|--- typings
.gitignore
.npmignore
gulpfile.js
package.json
README.md
tsconfig.json
tslint.json
typings.json
Saya menambahkan yang berikut ini .npmignoreuntuk menghindari menyertakan file asing dan menjaga minimum agar paket diimpor dan berfungsi:
node_modules/
*.log
*.tgz
src/
test/
gulpfile.js
tsconfig.json
tslint.json
typings.json
typings
dist/test
Saya .gitignorememiliki:
typings
# ignore .js.map files
*.js.map
*.js
dist
Saya package.jsonmemiliki:
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
Sekarang saya menjalankan:
npm pack
File yang dihasilkan (saat diekstrak) memiliki struktur berikut:
|
|--- dist
| |--- src
| |
| index.js
| index.js.map
| index.d.ts
|
package.json
README.md
Sekarang saya pergi ke proyek di mana saya ingin menggunakan ini sebagai perpustakaan dan mengetik:
npm install ./project-1.0.0.tgz
Ini berhasil menginstal.
Sekarang saya membuat file index.tsdi proyek saya di mana saya baru saja menginstal npm
import Project = require("project");
Mengetik Project.memberi saya opsi Intellisense yang merupakan inti dari keseluruhan latihan ini.
Semoga ini membantu orang lain dalam menggunakan proyek npm TypeScript mereka sebagai perpustakaan internal dalam proyek mereka yang lebih besar.
PS: Saya percaya bahwa pendekatan proyek kompilasi ke modul npm yang dapat digunakan dalam proyek lain ini mengingatkan pada .dlldi .NETdunia. Saya bisa membayangkan proyek-proyek yang diatur dalam Solusi dalam VS Code di mana setiap proyek menghasilkan paket npm yang kemudian dapat digunakan dalam proyek lain dalam solusi sebagai ketergantungan.
Karena butuh waktu yang cukup lama bagi saya untuk mencari tahu, saya telah mempostingnya jika ada orang yang terjebak di sini.
Saya juga mempostingnya untuk bug tertutup di:
https://github.com/npm/npm/issues/11546
Contoh ini telah diunggah ke Github: vchatterji / tsc-seed