我的项目是一个与NX一起使用的monorepo.我try 在我的package.json
中缓存一些根级脚本.
我试着读了这篇文章:https://nx.dev/recipes/running-tasks/root-level-scripts
对于这一点,我在package.json
中有这个脚本:
"prettier": "prettier --check **/*.{ts,js,cjs,json,yaml}",
And then if just run 100 the command succeeds
我使用nx@18.1.2
版本,我的nx.json
版本是:
{
"$schema": "./node_modules/nx/schemas/nx-schema.json",
"workspaceLayout": {
"appsDir": "apps"
},
"tasksRunnerOptions": {
"default": {
"runner": "nx/tasks-runners/default",
"options": {
"cacheableOperations": ["build", "lint", "type-check", "prettier"]
}
}
},
"namedInputs": {
"source": ["{projectRoot}/src/**/*"],
"jsSource": ["{projectRoot}/src/**/*.{ts,js,cjs}"],
"reactTsSource": ["{projectRoot}/src/**/*.{ts,tsx}"]
},
"targetDefaults": {
"build": {
"inputs": ["source"],
"outputs": ["{projectRoot}/dist", "{projectRoot}/.next"]
},
"lint": {
"inputs": [
"jsSource",
"{workspaceRoot}/.eslintrc.cjs",
"{workspaceRoot}/.eslintignore",
"{projectRoot}/.eslintrc.cjs",
"{projectRoot}/.eslintignore"
],
"outputs": []
},
"type-check": {
"inputs": ["reactTsSource", "{projectRoot}/tsconfig.json", "{projectRoot}/tsconfig.base.json", "{workspaceRoot}/tsconfig.base.json"],
"outputs": []
},
"prettier": {
"inputs": ["**/*.{ts,js,cjs,json,yaml}"],
"outputs": []
}
}
}
然后,为了在我的prettier
脚本中使用NX缓存,我添加了这个脚本:
"prettier:nx": "nx prettier",
然后我跑pnpm prettier:nx
但随后我得到了一个错误:
Error: Both project and target have to be specified
我只是不明白为什么没有NX的情况下,我的输出会变得更漂亮.