【问题标题】:Run command script that is not in package.json using yarn使用 yarn 运行不在 package.json 中的命令脚本
【发布时间】:2020-07-27 10:27:13
【问题描述】:

如何运行package.json 中不可用的脚本?

如果我执行,一切正常:

yarn run build

我的package.json 包含构建脚本:

{
  "scripts": {
    "build": "rollup -c"
  }
}

但是如果我直接执行会报错:

yarn run rollup -c // ERROR: Command \"rollup -c\" not found

我需要使用yarn run <script>运行时脚本可用的环境变量执行命令。

我缺少什么语法吗?

【问题讨论】:

    标签: javascript npm yarnpkg package.json lerna


    【解决方案1】:

    当您执行 yarn run build 时,它会在您的 package.json 脚本部分中查找 build 脚本。

    当您运行 yarn run rollup -c 时,它正在寻找您的 package.json 中不存在的 rollup

    如果你想运行rollup -c,不用yarn run,它应该可以工作。

    【讨论】:

    • 我认为 rollup 应该是严格全局的,以便使用 rollup -c 工作。我的包没有全局安装。
    • 如果 rollup 在你的 node_modules 文件夹中,你可以随时将本地 node_modules 添加到 PATH 变量中,假设你有一个 MAC export PATH="./node_modules/.bin:$PATH"
    • 是的,但我正在寻找一种在“纱线环境”中运行“自定义命令”的方法。也许不可能
    • 似乎yarn run 自动将“./node_mudles/.bin”添加到路径中。但是,rollup 可能不会添加到该文件夹​​中。因此,当您能够通过将其添加到 package.json 文件中来运行 yarn run xxx 时,您不能总是直接在 cli 中运行它。
    猜你喜欢
    • 1970-01-01
    • 2020-05-10
    • 2020-08-11
    • 2023-04-08
    • 2018-08-02
    • 2019-08-15
    • 1970-01-01
    • 2018-02-27
    • 2020-02-07
    相关资源
    最近更新 更多