Це більш свіжа відповідь за допомогою TypeScript 1.8.10:
Моя структура проекту:
|
|--- 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
Я додав наступне, .npmignoreщоб уникнути включення сторонніх файлів і зберегти мінімальний мінімум, щоб пакет імпортувався та працював:
node_modules/
*.log
*.tgz
src/
test/
gulpfile.js
tsconfig.json
tslint.json
typings.json
typings
dist/test
Моє .gitignore:
typings
# ignore .js.map files
*.js.map
*.js
dist
Моє package.json:
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
Зараз я бігаю:
npm pack
Отриманий файл (при розпакуванні) має таку структуру:
|
|--- dist
| |--- src
| |
| index.js
| index.js.map
| index.d.ts
|
package.json
README.md
Тепер я переходжу до проекту, де я хочу використовувати це як бібліотеку та ввести:
npm install ./project-1.0.0.tgz
Він успішно встановлюється.
Тепер я створюю файл index.tsу своєму проекті, де я щойно встановив npm
import Project = require("project");
Введення тексту Project.дає мені параметр Intellisense, який був пунктом всієї цієї вправи.
Сподіваємось, це допомагає комусь іншому у використанні своїх проектів TypeScript npm як внутрішніх бібліотек у своїх великих проектах.
PS: Я вважаю , що такий підхід складання проектів по НПМ модулів , які можуть бути використані в інших проектах , нагадує .dllв .NETсвіті. Я цілком можу уявити, що проекти організовуються за рішенням у коді VS, де кожен проект створює пакет npm, який потім може бути використаний в іншому проекті рішення як залежність.
Оскільки мені знадобилося досить багато часу, щоб я це зрозумів, я розмістив це на випадок, якщо хтось застряг тут.
Я також опублікував її для закритої помилки за адресою:
https://github.com/npm/npm/isissue/11546
Цей приклад завантажено в Github: vchatterji / tsc-seed