这是使用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:我相信这种将项目编译为可以在其他项目中使用的npm模块的方法让人联想.dll
到.NET
世界。我完全可以想象项目是在VS Code的解决方案中组织的,其中每个项目都会生成一个npm包,然后可以将其作为依赖项在解决方案中的另一个项目中使用。
由于花了我很多时间才能解决这个问题,因此我将其发布,以防有人卡在这里。
我还发布了一个封闭的bug,网址为:https :
//github.com/npm/npm/issues/11546
该示例已上传到Github:vchatterji / tsc-seed