当为一个npm模块使用一个私有的git url时,如何configuration消费应用程序只使用模块的dist文件夹中的文件?

我为我的angular应用程序使用angular-cli,但由于angular-cli目前不支持用于创build库,我使用了看似最广泛使用的git项目来创build我的库: https : //github.com/jvandemo/发电机angular2库

我的问题是,我不想将我的npm模块库发布到公共目录。 相反,我想直接在我的依赖中使用git url。 在开发过程中,这工作正常。 我可以在本地运行构build并在“dist”文件夹内运行一个npm链接,并且所有内容都是漂亮的。 然而,当我把我的npm模块代码git,然后在消费项目中运行一个npm安装,我不知道如何设置它,以便我的消费项目只是看在模块的dist文件夹内,并将其视为如果这是模块的根源。

例如,在node_modules / my_private_module中,我的文件结构如下所示:

dist/ -- component1 -- compoennt2 -- my_module.metadata.json -- my_module.d.ts -- my_module.umd.js -- index.d.ts -- index.js -- package.json -- README.MD package.json README.md 

我的应用程序使用的所有文件都在/ dist文件夹中,但我不想在所有的导入中指定“dist”,如

 import { myComponent1 } from 'my_private_module/dist'; 

我想能够只是指定

 import { myComponent } from 'my_private_module"; 

正如我在开发时,在dist文件夹中运行一个npm链接。

有什么办法可以做到这一点?

谢谢

在您的模块的package.json中,在根文件夹中:

 typings: 'dist/index.d.ts', main: 'dist/index.js' 

删除dist文件夹中的package.json。

import {...} from 'my_private_module'parsing软件包时,模块加载器将在my_private_modulenode_modules名为my_private_module的文件夹,并查找定义导出的index.js ,或者查找main package.json属性 – 在你的情况下,也指向dist文件夹中的index.js。

package.json放在你想要find模块的地方是一个很好的做法,并且main和typings指向index.js和index.d.ts。