Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 勒纳+;打字脚本+;npm:如何正确设置配置,使@projectName/package路径通过dist目录?_Node.js_Typescript_Npm_Lerna - Fatal编程技术网

Node.js 勒纳+;打字脚本+;npm:如何正确设置配置,使@projectName/package路径通过dist目录?

Node.js 勒纳+;打字脚本+;npm:如何正确设置配置,使@projectName/package路径通过dist目录?,node.js,typescript,npm,lerna,Node.js,Typescript,Npm,Lerna,我试图将我的项目设置为monorepo,但我遇到了一个烦人的问题,即使用TypeScript和Lerna进行路径规划 我有两个react项目,一个API和一个核心项目,用于存储我的域模型和类型脚本定义。现在,我需要能够在API中使用核心代码,并在我的2个react项目中使用定义 我遇到的问题是,我必须从每个包的根路径开始。例如,@projectName/core/src/models/myModel而不是@projectName/core/models/myModel。dist目录不包含该结构,

我试图将我的项目设置为monorepo,但我遇到了一个烦人的问题,即使用TypeScript和Lerna进行路径规划

我有两个react项目,一个API和一个核心项目,用于存储我的域模型和类型脚本定义。现在,我需要能够在API中使用核心代码,并在我的2个react项目中使用定义

我遇到的问题是,我必须从每个包的根路径开始。例如,
@projectName/core/src/models/myModel
而不是
@projectName/core/models/myModel
dist
目录不包含该结构,这就是我要导入的内容

我找到了几篇文章,建议如何设置它,但我仍然遇到了一些问题,不确定哪里出了问题

我现在只关注导出
@projectName/core

/tsconfig.json /package.json ./packages/core/tsconfig.json ./packages/core/package.json ./packages/api/tsconfig.json ./packages/api/package.json

我从上面删除了依赖项以保持可读性

这些设置被添加到
/tsconfig.json
中,以使其正常工作:

    "composite": true,
    "declaration": true

任何帮助都将不胜感激。谢谢

你找到解决办法了吗?我检查了lerna repo问题,这已被请求,但他们不想支持它,因为它不符合npm语义。我在野外看到的其他脚本是自定义版本,它们创建tmp文件夹,复制package.json文件,然后发布,但这不适用于本地包。@FernandoMontoya nope。至少在NPM7发布之前,我一直在工作区使用纱线。我现在只是浏览src/dist。是的,这似乎是目前唯一的方法,你检查过了吗?这不是我想要的解决方案,但我所做的是在
tsconfig.json
中将
outDir设置为
。/'
。这样,传输的文件都转储到根文件夹中,我可以在不使用
/dist/…
的情况下引用它们。
{
  "name": "projectName",
  "private": true,
  "devDependencies": {
    "lerna": "^3.20.2",
    "typescript": "^3.8.3"
  }
}
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "lib": ["ES2019"],
    "module": "commonjs",
    "target": "ES2019",
    "strict": true,
    "resolveJsonModule": true,
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "./dist",
    "rootDir": "./src"
  },

  "include": ["src/**/*"]
}
{
  "name": "@projectName/core",
  "version": "0.0.1",
  "private": true,
  "directories": {
    "lib": "dist",
    "test": "tests"
  },
  "files": [
    "dist"
  ],
  "scripts": {
    "build": "npm run clean && npm run compile",
    "clean": "rm -rf ./dist",
    "compile": "tsc"
  },
  "dependencies": {
  },
  "devDependencies": {
    "typescript": "^3.8.3",
    "webpack": "^4.43.0",
  }
}
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "lib": ["ES2019"],
    "module": "commonjs",
    "target": "ES2019",
    "strict": true,
    "resolveJsonModule": true,
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "dist"
  },
  "include": ["src/**/*"]
}
{
  "name": "@projectName/api",
  "version": "0.0.1",
  "description": "api",
  "files": [
    "dist"
  ],
  "main": "dist/server.js",
  "scripts": {
  },
  "dependencies": {
    "@packageName/core": "^0.0.1",
  },
  "devDependencies": {
    "typescript": "^3.8.3",
    "webpack": "^4.43.0",
    "webpack-node-externals": "^1.7.2"
  },
  "private": true
}
    "composite": true,
    "declaration": true