टाइपस्क्रिप्ट 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.
मुझे इंटेलीसेन्स विकल्प देता है जो इस पूरे अभ्यास का बिंदु था।
आशा है कि यह अपने टाइपस्क्रिप्ट एनपीएम परियोजनाओं को अपनी बड़ी परियोजनाओं में आंतरिक पुस्तकालयों के रूप में उपयोग करने में किसी और की मदद करता है।
पुनश्च: मेरा मानना है कि एनपीएम मॉड्यूल के लिए परियोजनाओं को संकलित करने का यह तरीका जो अन्य परियोजनाओं में इस्तेमाल किया जा सकता .dll
है, .NET
दुनिया में याद दिलाता है । मैं वीएस कोड में एक समाधान में आयोजित की जा रही परियोजनाओं की अच्छी तरह से कल्पना कर सकता हूं जहां प्रत्येक परियोजना एक एनपीएम पैकेज का उत्पादन करती है जिसे फिर एक अन्य परियोजना में निर्भरता के रूप में उपयोग किया जा सकता है।
चूंकि मुझे यह पता लगाने में उचित समय लगा, इसलिए मैंने इसे किसी के यहां अटक जाने की स्थिति में पोस्ट किया है।
मैंने इसे एक बंद बग के लिए भी पोस्ट किया:
https://github.com/npm/npm/issues/11546
यह उदाहरण Github: vchatterji / tsc-seed पर अपलोड किया गया है