Lerna构建速度非常慢,总是需要超过30分钟。

6

我刚加入一个基于Lerna代码架构的VueJS/Webpack项目:

package.json
lerna.json
packages/
modules/
plugins/

这个应用的每个页面几乎都被设置为一个单独的模块,我觉得这很奇怪。虽然我不是专家,但我不确定这是否是正确设置Lerna架构的方式。

不过,package.json定义了以下内容:

"scripts": {
"bootstrap": "npm install && npm run lerna && npm run app-build",
"lerna": "lerna bootstrap --hoist --nohoist=axios --nohoist=vue-chartist --nohoist=chardist",
"publish": "lerna publish",
"clean": "lerna clean",
"test": "lerna run test --parallel",
"start": "lerna run start --stream --scope=main-module",
"app-build": "lerna run build --stream --scope=main-module",
"doc": "good-doc"}

这个应用程序虽然中等大小,但是我会说:

包含node_modules的应用程序大小

每次构建时都非常慢(+30分钟)。 构建是按以下方式执行的:

cross-env BACK_URL=back_url npm run bootstrap --hoist

有没有一些好的方法可以加快构建速度?我的项目可能有什么设置不对吗?还是这只是正常现象...

3个回答

3
我从--hoist迁移到使用yarn工作区(https://yarnpkg.com/blog/2017/08/02/introducing-workspaces/)。
我的问题不是关于性能,而是关于有可能使用nohoist选项(https://yarnpkg.com/blog/2018/02/15/nohoist/)。我在一个非常简单的设置中遇到了一些react-scripts依赖错误,所以我需要排除一些模块以防止hoisting。
这是我的基本配置:
--> lerna.json
{
  "version": "0.0.0",
  "packages": [
    "packages/*",
  ],
  "npmClient": "yarn",
  "useWorkspaces": true
}

---> package.json
{
  "name": "root",
  "private": true,
  "workspaces": {
    "packages": ["packages/*""],
    "nohoist": ["**/babel-jest", "**/eslint", "**/jest"]
  },
  "devDependencies": {
    "lerna": "^3.4.3"
  }
}

0

构建速度缓慢是由于我的电脑和需要一起构建的大量文件。我们使用了 lerna,因为应用程序的每个页面都是一个单独的包,但这并不是 lerna 的真正用途。

我们从基础架构中移除了 lerna,现在情况变得更好了。


0
我建议设置“--concurrency 1”以减少内存使用。
这样性能会更好。
;)

1
你的回答可以通过添加更多支持信息来改进。请[编辑]以添加进一步的细节,例如引用或文档,以便他人可以确认你的回答是正确的。你可以在帮助中心中找到关于如何撰写好回答的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接