Node.js 为什么lerna在构建包时不考虑对等依赖性
虽然我在react admin中遇到了这个问题,但我认为它与react admin本身无关: 我的项目中有一些包,如下所示: 现在想象一下,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
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部分时,问题就解决了