Questa è una risposta più recente utilizzando TypeScript 1.8.10:
La struttura del mio progetto è:
|
|--- 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
Ho aggiunto quanto segue .npmignore
per evitare di includere file estranei e mantenere il minimo indispensabile per importare e funzionare il pacchetto:
node_modules/
*.log
*.tgz
src/
test/
gulpfile.js
tsconfig.json
tslint.json
typings.json
typings
dist/test
Il mio .gitignore
ha:
typings
# ignore .js.map files
*.js.map
*.js
dist
Il mio package.json
ha:
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
Adesso corro:
npm pack
Il file risultante (quando decompresso) ha la seguente struttura:
|
|--- dist
| |--- src
| |
| index.js
| index.js.map
| index.d.ts
|
package.json
README.md
Ora vado al progetto in cui voglio usarlo come libreria e digito:
npm install ./project-1.0.0.tgz
Si installa con successo.
Adesso creo un file index.ts
nel mio progetto in cui ho appena installato npm
import Project = require("project");
Digitando Project.
mi offre le opzioni Intellisense che erano il punto di tutto questo esercizio.
Spero che questo aiuti qualcun altro a utilizzare i loro progetti npm TypeScript come librerie interne nei loro progetti più grandi.
PS: credo che questo approccio alla compilazione di progetti in moduli npm che possono essere utilizzati in altri progetti ricordi il.dll
il .NET
mondo. Potrei ben immaginare progetti organizzati in una soluzione in VS Code in cui ogni progetto produce un pacchetto npm che può quindi essere utilizzato in un altro progetto nella soluzione come dipendenza.
Dato che ci è voluto un bel po 'di tempo per capirlo, l'ho pubblicato nel caso qualcuno fosse bloccato qui.
L'ho anche pubblicato per un bug chiuso su:
https://github.com/npm/npm/issues/11546
Questo esempio è stato caricato su Github: vchatterji / tsc-seed