当为一个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_module
下node_modules
名为my_private_module
的文件夹,并查找定义导出的index.js
,或者查找main
package.json属性 – 在你的情况下,也指向dist文件夹中的index.js。
将package.json
放在你想要find模块的地方是一个很好的做法,并且main
和typings指向index.js和index.d.ts。