【发布时间】:2019-11-14 10:50:43
【问题描述】:
我正在尝试将 Typescript 项目重构为具有多个包(带有纱线工作区)的 monorepo。在其中一个包 (packages/compiler) 中,我安装了 jest,并进行了多项测试。他们以前工作过,但在重构后我收到以下错误消息:
找不到名称“它”。是否需要为 a 安装类型定义
测试运行器?试试
npm i @types/jest或npm i @types/mocha
我似乎无法弄清楚如何让笑话发挥作用。
我已经在包中“本地”安装了所有测试。但是如果我在yarn install 之后检查node_modules/,我只能在packages/compiler/node_modules 中看到一个.bin 目录,并且我可以看到(ts-)jest 安装在“root”node_modules 中。我认为我需要确保 jest 安装在我的包(packages/compiler/node_modules)的 node_modules 中,而不是安装在根目录中。但我似乎无法弄清楚如何做到这一点(根 package.json 中的 nohoist 选项不起作用)。
所以我的问题是如何让 jest 在我的子包中工作?
根package.json:
{
"name": "pannenkoekjs",
"private": true,
"workspaces": [
"packages/*"
],
"devDependencies": {
"lerna": "^3.18.4"
}
}
packages/compiler 中的package.json:
{
"name": "@pannenkoekjs/compiler",
"dependencies": {
"typescript": "^3.6.2"
},
"devDependencies": {
"@types/jest": "^24.0.23",
"jest": "^24.9.0",
"ts-jest": "^24.1.0",
}
}
还有packages/compiler中的jest.config.js:
module.exports = {
preset: "ts-jest",
testEnvironment: "node",
};
【问题讨论】:
标签: typescript jestjs yarnpkg yarn-workspaces