Voici une réponse plus récente utilisant TypeScript 1.8.10:
La structure de mon projet est:
|
|--- 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
J'ai ajouté ce qui suit .npmignore
pour éviter d'inclure des fichiers superflus et garder le strict minimum pour que le package soit importé et fonctionne:
node_modules/
*.log
*.tgz
src/
test/
gulpfile.js
tsconfig.json
tslint.json
typings.json
typings
dist/test
Mon .gitignore
a:
typings
# ignore .js.map files
*.js.map
*.js
dist
Mon package.json
a:
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
Maintenant je cours:
npm pack
Le fichier résultant (une fois décompressé) a la structure suivante:
|
|--- dist
| |--- src
| |
| index.js
| index.js.map
| index.d.ts
|
package.json
README.md
Maintenant, je vais au projet où je veux utiliser ceci comme bibliothèque et tapez:
npm install ./project-1.0.0.tgz
Il s'installe avec succès.
Maintenant je crée un fichier index.ts
dans mon projet où je viens d'installer le npm
import Project = require("project");
Dactylographie Project.
me donne les options Intellisense qui étaient le point de tout cet exercice.
J'espère que cela aidera quelqu'un d'autre à utiliser leurs projets TypeScript npm comme bibliothèques internes dans leurs projets plus importants.
PS: Je crois que cette approche de compilation de projets en modules npm qui peuvent être utilisés dans d'autres projets rappelle le .dll
dans le.NET
monde. Je pourrais bien imaginer des projets organisés dans une solution dans VS Code où chaque projet produit un package npm qui peut ensuite être utilisé dans un autre projet de la solution en tant que dépendance.
Puisqu'il m'a fallu beaucoup de temps pour comprendre cela, je l'ai publié au cas où quelqu'un serait coincé ici.
Je l'ai également posté pour un bug fermé à:
https://github.com/npm/npm/issues/11546
Cet exemple a été téléchargé sur Github: vchatterji / tsc-seed