TL;博士
在package.json
2应用程序中有可能有类似于组件之类的东西吗?
长版本
我们的应用程序的组件是独立开发的。他们有自己的服务、常量和国际化的字符串。每次对组件进行更新或更改时,应用程序版本都会被更新。我们是否可以对组件进行版本化,并为每个组件建立单独的存储库;每个组件都被声明为主应用程序的依赖项?
我的想法
node_modules
)问题
以前有人做过这种事吗?有更好的方法吗?
发布于 2016-11-24 07:21:38
比我想象的要简单。只需将组件文件作为单独的模块从应用程序中移出即可。将其npm install --save
到应用程序,并更新app.module.ts
文件以指向它。角CLI将自动处理其余部分。
app.module.ts
import { ProfileCardComponent } from '@yoloinc/profile-card-component/profile-card.component';
发布于 2016-11-02 22:55:48
我知道如何在本地建造类似的东西。
您可以拥有这样的目录结构:
angular
|
---- common_files
|
----- package.json
|
----- index.ts
|
----- catalog1
|
---- package.json
|
---- some_file_with_service_model_comopnent.ts
|
---- index.ts - this is regular barrel file
|
----- catalog2
|
---- app1
|
------ package.json
|
---- apps
|
------ package.json
/角/普通文件/
{
"name": "common-modules",
"version": "0.9.6",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "tsc -w",
"tsc": "tsc",
"tsc:w": "tsc -w",
"pack": "webpack"
},
"typings": "./index.d.ts",
"author": "Maciej Sobala",
"license": "UNLICENSED",
"dependencies": {
"@angular/common": "2.0.0",
"@angular/compiler": "2.0.0",
"@angular/core": "2.0.0",
"@angular/forms": "2.0.0",
"@angular/http": "2.0.0",
"@angular/material": "2.0.0-alpha.9-3",
"@angular/router": "3.0.0",
"ng2-cookies": "^1.0.2",
"rxjs": "5.0.0-beta.12",
"typescript": "2.0.0",
"typescript-collections": "^1.2.3",
"zone.js": "^0.6.12"
},
"private": "true",
"devDependencies": {
"@types/body-parser": "0.0.29",
"@types/compression": "0.0.29",
"@types/cookie-parser": "^1.3.29",
"@types/express": "^4.0.32",
"@types/express-serve-static-core": "^4.0.33",
"@types/hammerjs": "^2.0.32",
"@types/mime": "0.0.28",
"@types/node": "^6.0.38",
"@types/core-js": "^0.9.34",
"webpack": "^1.13.2",
"webpack-merge": "^0.14.0",
"angular2-template-loader": "^0.4.0",
"awesome-typescript-loader": "~1.1.1"
}
}
/角形/公共_文件/索引:
export * from './catalog1/index';
export * from './catalog2/index';
/角形/公共_文件/编目1/Package.json:
{
"name": "common-modules/catalog1",
"main": "index.js"
}
现在您可以用common
编译npm run tsc
了。之后,您可以在app1
和app2
中重用它们。
npm install ../common/ --save
这将在app1 package.json中创建条目:
"dependencies": {
"common-modules": "file:///Users/my_name/Documents/work/my_project/angular/common_files",
}
在此之后,您可以从app1
和/或app2
导入从“公共模块/目录1”中导入{某某}的文件中的模块;
您还应该查看以下链接:https://docs.npmjs.com/private-modules/intro
https://stackoverflow.com/questions/40376519
复制相似问题