问题标签 [ng-packagr]

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.

0 投票
0 回答
1161 浏览

ng-packagr - 相对@imports 破坏 ng-packagr 并出现错误“`file` 的返回值必须是字符串”

我们最近将 Angular Dependencies 更新为 6,现在 ng-packagr 因列出的错误而中断。使用 ng serve 和 ng build,导入策略...

工作正常。当 ng packagr 到达 Rendering Stylesheets 部分时,它会因上述错误而中断。这是我的 ng-package.json

有没有我错过的选项?

0 投票
2 回答
122 浏览

typescript - NPM 包未在 Angular 生产应用程序中导入

目标

我正在尝试将 rxjs 的 typescript 模块增强作为 npm 包提供,以便在 Angular 项目中使用。

问题

在 Angular 应用程序中使用包在本地开发模式下可以正常工作,但是一旦为生产而构建应用程序,包就不会被导入到最终的 dist 中。

细节

  • 主要是提供了一种新方法:Observable.safeSubscribe()
    (完整的源代码:ngx-safe-subscribe.ts

    /li>
  • 该软件包是使用ng-packagr 构建的

  • 导入并在 Angular 项目中使用后,一切正常:(
    此处的完整演示:demo

    /li>
  • 一旦为生产而构建,包就不会导入到最终的 dist 中:

    /li>
  • 我最后的尝试是用最新的东西做的

    /li>
  • 附带说明一下,在 Visual Studio Code 中使用命名的导入样式会产生以下结果:

    /li>

很难判断问题是否来自 typescript、angular-cli、webpack 甚至 ng-packagr 无法识别扩充并将其正确导入最终 dist。

所以任何帮助将非常非常感激!
谢谢。

0 投票
0 回答
773 浏览

angular - 由于 dist 文件夹中的文件丢失,ng-package 捆绑失败

我分叉了一个angular lib,在 projects/keycloak-angular/src/lib/core 中添加了一个新的子文件夹,其中有一个导出命名空间的 .js 和 .d.ts 文件。它被导入两个现有文件以扩展功能。

运行时npm run build出现以下错误:

错误正是它所说的:它无法解析导入,因为新添加的文件没有复制到 dist 文件夹。Vscode "intellisense" 可以很好地解析 src 文件夹中的导入。

我检查了 tsconfig、angular config 和 ng-package config 以尝试确定是否以某种方式指定了现有文件以供包含,但我找不到任何东西。我还发现这个问题听起来与我的非常相似,并且可能有关联。

为什么我的添加在构建/打包阶段被遗漏了?

0 投票
0 回答
1127 浏览

angular - Angular 库 - ng-packagr 正在导出私有组件/服务/管道/类

我正在创建一个非常大的组件、服务等库,因此我们的组织可以只关注域代码。

在这个库中,我有一些组件、服务等必须保密,因为它们存在于我在库中控制的特定上下文中。

当我构建 lib 时,我看到许多来自 ng-packagr 的导出已添加到我的 lib.d.ts 中:

来自的一切export * from './public_api都是我的公共 API。

所有其他导出都来自 ng-packagr,我想对我的最终用户隐藏它,因为他们仍然可以使用它们(尽管有丑陋的字符,但他们可以使用它们)。

编辑

我的 public_api.ts 的内容

0 投票
2 回答
87 浏览

angular - ng packagr 自动生成的路径问题

我正在创建要在父应用程序中使用的独立 ng-libraries。这些库中的每一个都有多个正在使用的模型文件。但是ng-packagr似乎弄乱了模型文件路径。

例如

而正确的路径应该是完整的绝对路径

出口声明 const selectState: 进口

0 投票
1 回答
4203 浏览

angular - Angular 6 - angular.json - 通过重命名复制资产

我正在尝试在 ng build 的资产副本期间重命名文件

这是我用过的angular.json

不是创建文件dist/favicon.pngng build而是创建一个dist/favicon.png/favicon-v1.png.

它似乎拒绝重命名文件 - 它总是创建一个具有我想要使用的名称的文件夹,favicon.png然后将原始文件放入其中。

这是预期的行为吗?favicon-v1.png除了favicong.png在源代码管理中重命名文件之外还有其他解决方法吗?

我在用:

更新:在 Angular 5 中,类似的代码在 angular-cli.json 中运行良好。

0 投票
1 回答
5467 浏览

angular - 运行“ng-packagr -p ng-package.json”时出错

我正在尝试使用ng-packagr. 但是当我运行这个命令时:ng-packagr -p ng-package.json我得到这个错误: cannot find module '@angular/compiler-cli' 我检查了一切。我有所有模块的最新版本@angular/clinode. 我也安装了tsickle包。但仍然收到此错误并且无法创建包。你能建议任何其他解决方案吗?

0 投票
1 回答
397 浏览

angular - webpack 动态移除模块

我正在开发一个库,我们想在其中使用 2 个模块中的一个模块。应用程序的配置将决定使用哪个模块。我试图动态加载其中一个模块,但没有任何效果。所以,如果可能的话,我试图在开始时将它们都导入并动态删除一个。是否可以从库中动态删除模块?或者我可以在库中动态添加一个模块吗?

我正在开发 Angular 7,ng-packager 正在创建库,webpack 是模块捆绑器,应用程序将使用 AOT 编译运行。

0 投票
0 回答
906 浏览

node.js - 装饰器不支持“可注入”函数调用的模板编译期间出错,但调用了“ɵmakeDecorator”

我正在尝试使用 ng-packagr 创建一个角度包。

我已将以下脚本添加到我的包 json 中以构建包

但是,当我运行 build 命令时出现以下错误。

在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
581 浏览

css - 有没有办法使用 ng-packagr 和 Angular 6 来提取 css?

我目前正在开发一个 Angular 6 项目,其中包含使用 ng-packagr 构建和发布的多个库。其中一个库是组件库。因此,它包含多个组件,每个组件都有自己的 scss。作为使用 ng-packagr 构建此库的一部分,html 和 scss 被内联(并转译为 css),这是正常的和预期的行为。

我知道,在使用构建标准 Angular 应用程序时,@angular-devkit/build-angular:browser有一个标志extractCss将创建一个 styles.css 文件,作为包含所有样式的构建应用程序的一部分。

有没有办法使用 ng-packagr 做到这一点?

ng-package.json:

在 angular.json 中为我的库构建配置: