假设您有两个不同的Angular 2应用程序,并且它们都需要使用相同的组件。
我创建了通用组件,按照本教程http://blog.angular-university.io/how-to-create-an-angular-2-library-and-how-to-consume-it-jspm-vs-webpack/创建了一个库,但是npm会将我的代码公开,我将不得不付费将其设为私有。
所以,问题是: 1.我应该如何创建可供工作团队使用的组件? 2.是否有必要发布到npm或者我可以将我的代码推送到私有github仓库吗?如果是这样,我该怎么做?在应用程序中重用代码的过程是什么?
提前致谢。
答案 0 :(得分:0)
package.json允许您引用从git存储库下载的包,这可能是您在内部使用的包。见NPM documentation
格式示例:
git+ssh://git@github.com:npm/npm.git#v1.0.27
git+ssh://git@github.com:npm/npm#semver:^5.0
git+https://isaacs@github.com/npm/npm.git
git://github.com/npm/npm.git#v1.0.27
所以这会在你的package.json中给出类似的东西:
"dependencies": {
"privatepackage":"git://localgitserver/git/privatepackage.git"
}
答案 1 :(得分:0)
我建议您使用NX,在应用程序之间共享代码很简单
创建NX工作区
npx --ignore-existing create-nx-workspace MY_WORK_SPACE
您现在可以在该工作区中创建multiplr应用程序,它们可以是Angular应用程序或React App或它们之间的混合体
ng add @nrwl/angular --defaults
ng g @nrwl/angular:application app1 // generate first app
ng g @nrwl/angular:application app2 //generate second app
它们在应用目录下可见
因此,现在您有了应用程序,就可以通过生成库在应用程序之间共享代码
ng g @nrwl/angular:lib ui // ui is the name of your library
它现在在libs目录下可用
您现在可以通过生成组件和服务来使用库:
ng g component sharedComponent --project=ui --export
最后,您可以通过导入UiModule来在应用程序(app1和app2)中使用您的库
import { UiModule } from '@MY_WORK_SPACE/ui'; // @nameOfYourCreatedWorkspace/nameOfLibrary
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, HttpClientModule, UiModule], // import here
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
还有瞧!