问题标签 [angular-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 在 DevOps 中自动增加 Angular6 库版本
我正在构建一个 Angular 库以用于其他 Angular 应用程序。我想在 DevOps (VSTS) 中创建一个构建管道,因此在每次提交到 git 后,该库将被构建并作为 Artefacts 发布以供使用。
到目前为止一切正常,我的问题是 Angular 库版本。如果我尝试发布具有相同版本的库,我会收到此错误:
禁止提要已包含版本“0.0.1”的包“my-lib”:my-lib
我的构建管道:
为了解决这个问题,我必须在每次构建之前更改 package.json 中的版本
或者通过cli:npm version 0.0.2
我可以自动完成吗?这意味着,除了提交/推送之外不需要额外的操作?我已经搜索了很长时间,但找不到解决方案。谢谢
angular - Angular - 将本地外部模块添加到应用程序
我有一个项目my-components和一个项目my-showcase。my-components是一个 Angular 库,而my-showcase是一个 Angular 应用程序。有时,当我在库中更改或添加组件时,我会提交到私有 git 并发布到私有 npm。然后我可以在my-showcase等其他应用程序中使用它。在提交和发布之前,我会对其进行测试。到目前为止,我在 my-showcase 中创建和开发了一个新组件。完成后,我将其放入my-components。
有时我通过 npm 导入我的角度组件库:
对于测试和开发,我将其更改为本地路径:
不幸的是,我收到以下错误消息:
和:
显然,app my-showcase中库中的组件使用了my-components中的错误 node_module 文件夹(特别是@angular/core),而不是my-showcase中的 node_module 文件夹。
在处理 Angular 库和 NPM 时,是否有人为我提供解决方案或我的理解有误?如果太难以理解,请告诉我。
angular - 如果您不关心旧浏览器,将 tsconfig 目标设置为 es6 是否安全?
在 Angular 应用程序中,如果您不关心旧浏览器,将tsconfig.json
compilerOptions.target设置为"es6"
(或等效的)是否安全?"es2015"
关于这件事,在Angular 官方文档中是这样写的:
默认情况下,目标是 es5,如果您只想将应用程序部署到 es6 兼容的浏览器,可以将目标配置为 es6。但是如果你在IE等一些老浏览器中将target配置为es6,就会抛出Syntax Error。
所以假设我只想将我的应用程序部署到 es6 兼容的浏览器,我应该将编译目标设置为 es6
还有其他我应该注意的问题吗?
例如,一些 Angular 第三方库开始无法工作并抛出臭名昭著的错误:
TypeError:没有'new'就不能调用类构造函数
假设在这些情况下此类第三方库中存在错误是否正确?
angular - 将 Angular 材质添加到自定义库
我想编写自己的库并在其他项目中重用它,所以我创建了一个新应用程序并在那里生成了一个库:
如何将 Angular Material 添加到我的库中?我想使用这样的东西:
但我得到一个错误:Could not find the project main file inside of the workspace config (projects/first-lib/src)
。怎么了?
css - 如何将全局样式添加到 Angular 6/7 库
我试图以与 Angular 应用程序相同的方式添加全局样式,但它完全不起作用。
我的库的名称是example-lib,所以我添加styles.css
到/projects/example-lib/
. angular.json
我在主文件中添加了样式:
但是当我尝试使用命令构建库时:
ng build example-lib
我收到错误:
我想这是在单独的库中添加全局样式的另一种方法。任何人都可以帮助我吗?
angular - Angular 6 库管道
如何在 Angular 6 库中添加自定义管道以使其在我的主应用程序中可用?目前我正在这样做:lib.module.ts:
在 public_api.ts 中:
在 app.module.ts 中:
我正在尝试使用管道,{{ 'something' | some}}
但未调用transform
方法。SomePipe
model - Angular 库无法导出类 - Angular6
我创建了一个新的 Angular 6 库。该库有一个名为 User 的模型:
我在另一个角度应用程序中使用该库,一切正常。但是当我尝试使用该模型时:
我收到此错误:
智能感知找到了它,但我仍然收到此错误。
应用模块:
有人有想法吗?谢谢!
angular - Angular - 在库中使用应用程序主题
我正在编写一个 Angular 库。我想在我的库中使用应用程序主题的原色。我无权访问theme.scss
文件,因此无法在我的组件样式文件中导入它。我怎样才能做到这一点?
谢谢
angular - 自动安装 Angular 库的依赖项
我们正在开发一个共享的小部件库@acme/widget-collection
,它是内部作为单独模块开发的所有小部件的集合 -@acme/widget1
等等@acme/widget2
。
这应该允许需要使用小部件的开发人员简单地导入@acme/widget-collection
而不需要单独导入所有小部件。
所以库命名为@acme/widget-collection
imports @acme/widget1
,当然@acme/widget2
,@acme/widget3
然后导出它们,以便在导入时可用@acme/widget-collection
。
在共享库中,我们将所有小部件定义peerDependencies
为package.json
.
将@acme/widgets-collection
库导入项目后,在运行或构建项目时,我们收到以下错误 - error TS2307: Cannot find module @acme/widget1
。
如果我们手动安装依赖项,即npm i @acme/widget1 @acme/widget2 @acme/widget3
它可以正常工作。
但是,我们试图避免手动安装所有依赖项,@acme/widget-collections
因为这些依赖项不断变化,我们希望 npm 自动安装它们。
运行npm i @acme/widget-collection
似乎没有安装它们。
是否有安装依赖项的 npm 本机方式?
如果没有,是否应该直接将它们安装ng-packagr
到@acme/widget-collection/node_modules
文件夹中?
更新
将依赖项输入为“依赖项”而不是“peerDependencies”似乎会在运行时自动安装它们,npm i @acme/widget-collection
但我不确定这是否是推荐的方式,因为我见过的大多数角度示例都使用peerDependencies
. 这似乎有效:
并运行npm i
或npm i @acme/widget-collection
将安装@acme/widget1
,@acme/widget2
并@acme/widget3
在node_modules
文件夹中。
angular - 如何在 bitbucket 中发布角度库
我通过运行创建了一个 Angular 库:
这将创建一个 Angular 应用程序,并在其中创建一个名为“projects”的文件夹,其中包含库代码:
申请代码:
所以有了这个结构,我不知道如何在 Bitbucket 中发布库以供其他应用程序以这种方式使用:
包.json:
我按照教程创建了库,并且可以在容器应用程序中使用它。我还通过安装创建的 .tgz 设法在其他应用程序中使用它:
最后一步是发布它并标记它以供使用。