小编Had*_*OMA的帖子

ng-packagr给未提供外部模块的名称

使用ng-packagr打包一个项目@ my / common-util时,没有问题。此类在abstract-person.ts中包含一个名为AbstractPerson的抽象类。

在另一个名为@ my / common-impl的项目中,创建了另一个Person类,该类扩展了AbstractPerson并使用@ my / common-util包名称将其导入。当我使用ng-packagr打包时,出现以下错误->

在options.globals中没有为外部模块'@ my / common / abstract-person'提供名称-猜测'abstractPerson'

似乎这是一个警告,我继续npm将@ my / common和@ my / common-impl都安装到另一个项目中,但是当我从@ my / common-impl导入Person类时遇到以下错误


./node_modules/@my/common-impl/esm5/common-impl.js中的错误未找到模块:错误:无法解析“ C:\ Data \ me \”中的“ @ my / common / abst ract-person” node_modules \ @my \ common-impl \ e sm5'在'C:\ Data \ me \ node_modules \ @my \ common-impl \ esm5'中解析'@ my / common / abstract-person'解析的请求是使用描述的模块文件:C:\ Data \ me \ node_modules \ @my \ co mmon-impl \ package.json(相对路径:./esm5)使用描述文件后,字段“浏览器”不包含有效的别名配置:C:\ Data \ me \ …

angular ng-packagr

21
推荐指数
2
解决办法
1万
查看次数

NX - 带有 Storybook 和单独导出组件的 UI 库

我正在使用 Angular 探索 Nx(两者都比较新)并试图弄清楚如何生成一个组件库:

  • 可以运行 Storybook,并且
  • 可以一次导入一个组件,而不是将整个模块/所有组件拖到需要单个组件的应用程序中。(为了避免向我的包中添加不必要的代码/膨胀)。

所以理想的设置是这样的:

repo
 |--apps
    |--normal-app (can import just card or button, without pulling in both)
 |--libs
    |--ui (lists individually exportable components, and has a servable Storybook)
       |--.storybook
       |--card
       |--button
Run Code Online (Sandbox Code Playgroud)

遵循展示如何创建共享组件库的通用 Nx 教程以及在 Nx 中设置Storybook的指南,我生成了一个 UI 库,并设置了一个 Storybook 原理图(如果这是正确的说法)对于那个 lib 目录。

希望将我所有的共享组件放在一个库中,并将 Storybook 设置为自动生成和为每个组件提供故事——但随后能够将组件从该库单独拉入其他应用程序,而无需拉入整个庞大的用户界面图书馆。

我成功地构建了一个 UI 库和其中的两个组件。我成功地在那个库中设置了 Storybook。然后我UIModuleindex.tsUI 库中的文件(公共 API)导入了,并在我的模板中使用了两个组件之一。

但是当我构建导入 lib 的应用程序时,生产构建包含两个组件,尽管我使用了一个。这是有道理的,因为我正在导入UiModule. 然而,这并不理想。

我希望创建一个安装程序,它允许在童话建立一个lib置的组件,可以导入独立

有没有办法在不彻底改变 NX 设置的情况下做到这一点?到目前为止,我已经探索了两个主要选项。一种是将所有组件分解为自己的 UI …

angular storybook nrwl nrwl-nx angular-storybook

8
推荐指数
1
解决办法
2056
查看次数

NestJS + Angular 项目抛出找不到模块:错误:无法解析“缓存管理器”

我有一个 NestJS 后端 (6.9.0) 和 Angular 前端项目 (8.2.11)。我同时使用在我的本地主机中并行启动前端和后端。

后端启动正常(启动速度更快),但是当 Angular 项目开始编译并且编译准备就绪时,它会引发以下错误:

任何想法为什么?

这之前工作得很好,不幸的是我无法准确指出是什么变化导致了这种行为。在 NestJS 中,我没有使用 cli,我只是用 tsc 构建它。

WARNING in ../server/node_modules/@nestjs/common/utils/load-package.util.js 8:39-59
Critical dependency: the request of a dependency is an expression

ERROR in ../server/node_modules/@nestjs/common/cache/cache.providers.js
Module not found: Error: Can't resolve 'cache-manager' in '/mnt/c/codes/salesforce-compare/server/node_modules/@nestjs/common/cache'
ERROR in ../server/node_modules/@nestjs/common/pipes/validation.pipe.js
Module not found: Error: Can't resolve 'class-transformer' in '/mnt/c/codes/salesforce-compare/server/node_modules/@nestjs/common/pipes'
ERROR in ../server/node_modules/@nestjs/common/serializer/class-serializer.interceptor.js
Module not found: Error: Can't resolve 'class-transformer' in '/mnt/c/codes/salesforce-compare/server/node_modules/@nestjs/common/serializer'
ERROR in ../server/node_modules/@nestjs/common/pipes/validation.pipe.js
Module not found: Error: Can't resolve 'class-validator' in '/mnt/c/codes/salesforce-compare/server/node_modules/@nestjs/common/pipes'
Run Code Online (Sandbox Code Playgroud)

swagger server angular nestjs

6
推荐指数
2
解决办法
2191
查看次数

Docker 绑定挂载卷不传播由 angular `ng serve` 执行监视的更改事件

遵循以下步骤:

  1. 定义 Dockerfile:

    FROM node:alpine
    
    RUN yarn global add @angular/cli
    RUN yarn global add node-sass
    
    RUN mkdir /volumes
    
    WORKDIR /volumes
    
    EXPOSE 4200
    
    ENTRYPOINT ["ng"]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从这个 Dockerfile 构建一个镜像:

    docker build -t my_angular_image .
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用图像创建一个新的 angular 应用程序:

    // Create the new app
    docker run --rm --mount type=bind,src=$PWD,dst=/volumes my_angular_image new my-app --directory app --style scss
    // Change ownership of the generated app
    sudo chown -R $USER:$USER .
    
    Run Code Online (Sandbox Code Playgroud)
  4. 根据镜像,运行一个容器绑定挂载应用程序卷:

    docker run -p 4200:4200 --mount type=bind,src=$PWD/app,dst=/volumes my_angular_image serve --host 0.0.0.0
    
    Run Code Online (Sandbox Code Playgroud)

结果: 第一次编译按预期工作,容器为应用程序提供服务。但是,当更改必须ng serve在容器中监视的文件的值(来自主机)时,不会触发新的角度构建(因此,不会更新服务的应用程序)。 …

docker dockerfile mounted-volumes angular-cli angular

5
推荐指数
1
解决办法
1734
查看次数

如何使用密码管理器为 git push/pull 提供个人访问令牌

语境

假如说:

  • 我在GitLab上有一个存储库,并且已经将其克隆到我的计算机上。
  • 我有一个 GitLab 令牌,允许我从该存储库推送和拉取。
  • 该代币已保存到我的Bitwarden金库中。
  • 感谢Bitwarden CLI,我可以通过编程方式验证/锁定/解锁我的保管库。

问题

有没有办法以编程方式将 Bitwarden 即时获取的 GitLab 令牌链接/管道到 git Push 和 Pull 命令,以便验证/授权这些操作?

调查

我听说了以下解决方案来解决该问题,但它们不符合我需要面对的安全规则:我无法在磁盘上以纯文本形式存储任何秘密。

  • GitLab 令牌可以放入 gitcredentialshelper.store 文件中。这里,GitLab 令牌需要以纯文本形式存储在存储文件中。
  • 可以修改 git 远程 URL 以在其中包含凭据。这里,GitLab 令牌需要以纯文本形式存储在 git 远程 URL 中。

笔记

  • 我无法使用 SSH 密钥,我需要继续使用 HTTPS 协议。
  • 我的目标 git 版本是官方 Ubuntu 软件包提出的版本(2.17.1在撰写本文时)。

git security bash shell gitlab

5
推荐指数
1
解决办法
1096
查看次数