Node.js 为什么lerna在构建包时不考虑对等依赖性

Node.js 为什么lerna在构建包时不考虑对等依赖性,node.js,npm,lerna,Node.js,Npm,Lerna,虽然我在react admin中遇到了这个问题,但我认为它与react admin本身无关: 我的项目中有一些包,如下所示: 现在想象一下,ra data simple rest/package.json如下所示: { "name": "ra-data-simple-rest", "version": "3.5.5", "description": "Simpl

虽然我在react admin中遇到了这个问题,但我认为它与react admin本身无关:

我的项目中有一些包,如下所示:

现在想象一下,
ra data simple rest/package.json
如下所示:

{
    "name": "ra-data-simple-rest",
    "version": "3.5.5",
    "description": "Simple REST data provider for react-admin",
    "main": "lib/index.js",
    "module": "esm/index.js",
    "sideEffects": false,
    "files": [
        "*.md",
        "lib",
        "esm",
        "src"
    ],
    "authors": [
        "François Zaninotto"
    ],
    "repository": "marmelab/react-admin",
    "homepage": "https://github.com/marmelab/react-admin#readme",
    "bugs": "https://github.com/marmelab/react-admin/issues",
    "license": "MIT",
    "scripts": {
        "build": "yarn run build-cjs && yarn run build-esm",
        "build-cjs": "rimraf ./lib && tsc",
        "build-esm": "rimraf ./esm && tsc --outDir esm --module es2015",
        "watch": "tsc --outDir esm --module es2015 --watch"
    },
    "dependencies": {
        "query-string": "^5.1.1"
    },
    "devDependencies": {
        "cross-env": "^5.2.0",
        "rimraf": "^2.6.3"
    },
    "peerDependencies": {
        "ra-core": "^3.0.0"
    }
}
因此,它将
ra-core
作为其对等依赖项

现在假设我的lerna.json文件如下所示:

{
  "lerna": "2.5.1",
  "packages": [
    "examples/data-generator",
    "packages/*"
  ],
  "version": "3.7.0"
}
当我运行
lerna run build
命令时,它首先生成
ra data simple rest
,因为
ra-core
尚未生成,它抱怨
ra-core
没有导出一些模块。在我的想象中,lerna应该首先构建
ra核心
,然后构建
ra数据简单rest
,因为
ra数据简单rest
ra核心
作为其对等依赖项,但它没有这样做为什么?当我把
ra core
放到dependecy部分时,问题就解决了