问题标签 [nx.dev]

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 投票
1 回答
185 浏览

angular - NX 为一个项目创建依赖项

我正在使用 NX 来管理我的项目,我有 3 个 Angular 应用程序。我可以为每个项目创建一个 packge.json 文件吗?我不希望所有项目都携带彼此的部门。

例如,一个项目需要一些 UI 库,而另一个则不需要。

这种用例的最佳实践是什么?谢谢

Clearfaction - 我不想使用不同的版本,我想在其中一个项目中使用额外的库。例如,一个项目需要 moment.js 其余项目都不需要它

0 投票
1 回答
248 浏览

node.js - 来自 webpack 的 ERR_REQUIRE_ESM 导入 ESM 包

我正在构建一个应用程序,使用Nx进行模块化,使用Geckos进行服务器部分。使用 Nx 的 Node 默认 Webpack 5 配置,我在运行应用程序时收到此错误:

以下是重现的步骤:

在这个阶段,默认的 Express 应用程序构建并运行。

现在我将apps/geckos-server-app/src/main.tsREADME 中的内容替换为 Geckos 服务器示例:

...并使用安装 geckos 服务器包

好的,是时候再次运行它了:

我测试了很多 Webpack 配置覆盖并type: "module"在 package.json 中使用,但无济于事。无论我更改什么 webpack 设置,输出 main.js 看起来都基本相同。我尝试在应用程序的 webpack 覆盖配置中更改的内容:

控制台登录配置验证脚本是否正在运行。

当我在转译输出中手动更改为时,该应用程序可以工作requireimport但这不是一个可持续的解决方案。

我怀疑这个错误与 Geckos 是一个 ESM 包有关,而 Webpack 只使用require而不是import它应该使用的,但我找不到任何改变这种行为的方法。

有任何想法吗?

  • 节点版本 16.13.0
  • Nx 版本 13.4.1
  • Webpack(Nx 的传递 dep):5.65.0
0 投票
0 回答
11 浏览

typescript - config(npm) 抛出未找到配置属性,但 getConfigSources 方法记录正确的对象

我正在尝试将config包集成到我的 nx.dev 打字稿项目中。我config在根级别有一个目录,其中包含 default.json

在我index.ts尝试

并获得以下信息:

它到处都说这就是我需要连接它但get函数抛出的所有内容。

0 投票
1 回答
60 浏览

eslint - 如何配置 WebStorm 以使用 nx lint 而不是 ESLint?

在使用 WebStorm(可能还​​有其他 JetBrains IDE)处理 nx 项目时,我不断收到此错误:

错误:加载规则“@typescript-eslint/await-thenable”时出错:您使用了需要生成 parserServices 的规则。因此,您必须为 @typescript-eslint/parser 的“parserOptions.project”属性提供一个值。

我确实parserOptions.projectlibs/mylibrary/.eslintrs.json

npx eslint ./libs/mylibrary当我通过或通过 nx ( )手动运行 ESLint 时,该错误不会重现nx lint mylibrary

知道如何配置 WebStorm 以使其正常工作nx lint吗?

0 投票
0 回答
33 浏览

reactjs - 在可发布的 NX React 库中捆绑 CSS

我创建了一个包含一些自定义样式的可发布 React 库。当我在 NX 项目的演示应用程序中使用这个库(组件)时,我不需要包含任何 CSS 样式——它们就可以工作。

现在我将这个库发布到我的私有 NPM 注册表中,我想在单独的应用程序中使用这个包 - 突然我的 CSS 文件没有自动包含,我需要包含 JS 文件和 CSS 文件。

有没有办法将 CSS 文件自动捆绑到构建中?所以在我的消费应用程序中,我所要做的就是import {MyComponent} from 'my-component';并且还会包含 CSS 文件?

谢谢

0 投票
1 回答
18 浏览

node.js - 将现有的 NodeJs(node、Express、monodb、...)项目添加到现有的 NX monorepo (Angular)

有没有人体验过如何将现有的 NodeJS API 添加到现有的(Angular)Nx Monrepo?

不幸的是,手册对我帮助不大 https://nx.dev/migration/manual

0 投票
0 回答
36 浏览

angular - 如何将 dotenv-webpack 与 angular 和 nx 一起使用

我想.env在我的应用程序中配置一个文件,以便我可以从 codebuild 定义我的环境变量。我在 nx 工作区中有一个角度应用程序。我正在覆盖我的 webpack 以配置dotenv-webpack,但是当我尝试使用构建我的应用程序时出现此错误nx build --prod

不知道我做错了什么。

这是我的网络包:

这是 angular.json 上的应用程序配置:

我的 .env 文件:

还有我的 environment.prod.ts:

有什么遗漏吗?

0 投票
0 回答
13 浏览

javascript - 为什么 Nx 可发布包导入依赖于可发布包的外部依赖项

我使用 Nx 作为我的 monorepo 管理工具。当我编写两个这样的可发布库时:

1.@测试/父母

产生于nx generate @nrwl/node:library --name=parent --buildable --importPath=@test/parent --publishable


2.@测试/孩子

产生于nx generate @nrwl/node:library --name=child --buildable --importPath=@test/child --publishable

我想发布@test/child包。所以我建造它们。但是在@test/childdist/package.json 文件中。我发现:

@test/child包含的@test/parent依赖项moment

我很困惑为什么会这样。我认为momentis@test/parent的依赖,所以它不应该包含在@test/child' 的依赖中。

0 投票
0 回答
14 浏览

angular - Nx build - 另一个 id 为 xxx 的进程当前正在运行 ngcc

我有一个包含 2 个项目的 Nx monorepo。当我在本地构建这些项目时,一切都按预期工作,但是当我尝试在构建服务器上构建相同的项目时,我得到了错误

这可能是由 command 引起的nx affected:build --all --parallel --configuration=production。这会并行运行所有构建,以某种方式同时运行两个构建ngcc,从而锁定目录中的某些文件node_modules。我很清楚。但问题是我已经尝试了几乎所有建议的修复程序,但警告仍然存在,显着减慢了构建速度,甚至在某些情况下使其失败。


版本

  • Angular:13.2.x(它在 v12.x 上给出了同样的错误)
  • Nx:13.8.x
  • 节点:v14.17.x
  • 管道:Bitbucket 管道

将 ngcc 添加到安装后

根据一些答案(herehereherehere等等),最好的解决方法是添加ngcc --properties es2015 browser module main甚至添加ngcc --properties es2015 browser module main --create-ivy-entry-points --first-onlypostinstallpackage.json 中。由于 Nx V12,这是在通过 Nx 生成新的 monorepo 时自动添加的,但似乎没有修复构建服务器上的消息(本地从未有任何问题)

( "postinstall": "node ./decorate-angular-cli.js && ngcc --properties es2015 browser module main",)

删除锁定文件

我试图在构建开始之前删除锁定文件,因为我认为可能postinstall会创建锁定文件,但不知何故没有时间删除它。但是我所有的尝试都表明在构建开始之前没有锁定文件。

脚本:

总是导致no lock file


缓存

node_modules 缓存在构建服务器中,因此可以在单独的管道步骤中使用。脚本如下:

每个步骤都使用在-stepnode上创建的缓存。install我无法验证 ngcc 结果是否存储在缓存中,但是由于在node_modules安装步骤之后整个缓存都被缓存并且 ngcc 结果被添加到 node_modules 我猜它被存储了。


由于以上都没有修复警告,我是否缺少某些东西,或者这只是 ngcc 现在的工作方式?