我的项目是一个与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的情况下,我的输出会变得更漂亮.

推荐答案

你需要加上package.json:

    "nx": {},

然后,改变

        "prettier": {
            "inputs": ["**/*.{ts,js,cjs,json,yaml}"],
            "outputs": []
        }

        "prettier": {
            "inputs": ["{workspaceRoot}/**/*.{ts,js,cjs,json,yaml}"],
            "outputs": []
        },

Node.js相关问答推荐

Cypress.io - 如何等待返回调用属性的方法的结果?

MongoDB:通过匹配输入字符串或输入字符串中的单个单词进行搜索

Amplify 部署的应用程序出现TypeError: handler is not a function错误,但它在本地运行

为什么运行 yarn 命令会出错 - yargs-parser的完整性判断失败

如何在 Docker 容器中 SSO 登录 AWS(使用 aws-sdk v3)

Sharp JS 依赖关系 destruct 了 Elastic Beanstalk 上的 Express Server

类型中缺少属性,该类型是由类实现的接口

响应发送 200 而不是 403

AWS Kinesis 中的分区键是什么?

在Go中,编写非阻塞代码有意义吗?

Node.js、Cygwin 和 Socket.io 走进一家wine 吧……Node.js 抛出 ENOBUFS,所有人都死了

如何使用 Mocha 测试正常(非 node 特定)JavaScript 函数?

从 Node.js 应用程序查询 Heroku 托管的 Postgres 数据库时出现自签名证书错误

构建 vue cli 后如何运行生产站点

在 express 中添加故意延迟

使用 pg-promise 进行多行插入

Selenium WebDriver 等到元素显示

Route.get() 需要回调函数,但得到对象未定义

处理快速异步中间件中的错误

Firestore:多个条件 where 子句