首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角度2组分可以外化吗?

角度2组分可以外化吗?
EN

Stack Overflow用户
提问于 2016-11-02 09:33:14
回答 2查看 470关注 0票数 5

TL;博士

package.json 2应用程序中有可能有类似于组件之类的东西吗?

长版本

我们的应用程序的组件是独立开发的。他们有自己的服务、常量和国际化的字符串。每次对组件进行更新或更改时,应用程序版本都会被更新。我们是否可以对组件进行版本化,并为每个组件建立单独的存储库;每个组件都被声明为主应用程序的依赖项?

我的想法

  • 在每台用于开发组件的机器上创建一个虚拟应用程序
  • 使用组件并将其提交到存储库
  • 主应用程序的构建过程将这些存储库指定为依赖关系,并在构建时提取它们(特定版本)。
  • 另一个任务将它们复制到应用程序目录中(来自node_modules)

问题

以前有人做过这种事吗?有更好的方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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';

票数 1
EN

Stack Overflow用户

发布于 2016-11-02 22:55:48

我知道如何在本地建造类似的东西。

您可以拥有这样的目录结构:

代码语言:javascript
运行
复制
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

/角/普通文件/

代码语言:javascript
运行
复制
{
  "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"
  }
}

/角形/公共_文件/索引:

代码语言:javascript
运行
复制
export * from './catalog1/index';
export * from './catalog2/index';

/角形/公共_文件/编目1/Package.json:

代码语言:javascript
运行
复制
{
  "name": "common-modules/catalog1",
  "main": "index.js"
}

现在您可以用common编译npm run tsc了。之后,您可以在app1app2中重用它们。

代码语言:javascript
运行
复制
npm install ../common/ --save

这将在app1 package.json中创建条目:

代码语言:javascript
运行
复制
"dependencies": {
    "common-modules": "file:///Users/my_name/Documents/work/my_project/angular/common_files",
  }

在此之后,您可以从app1和/或app2导入从“公共模块/目录1”中导入{某某}的文件中的模块;

您还应该查看以下链接:https://docs.npmjs.com/private-modules/intro

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40376519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档