gpt4 book ai didi

shell - 如何使用 Bash shell 命令使 npm 项目在 Windows 上工作?

转载 作者:行者123 更新时间:2023-12-01 12:07:15 27 4
gpt4 key购买 nike

我最近接手的一个项目中有一些 NPM 脚本,如下所示:

{
"package": "yarn package-common && mv './dist/APP® TV.wgt' ''./package/$(yarn -s filename)''",
"package-common": "tizen package -t wgt -s APP -- ./dist && rimraf package && mkdir package",
"filename": "cross-env-shell echo APP_${npm_package_version}.wgt",
}

这个项目是由某人在 MAC 上编写的。我如何将以下部分转换为有效的 Powershell/cmd 命令?我还没有在任何地方找到任何关于此的信息。它运行命令并将回显值附加到它从中调用的字符串。
''./package/$(yarn -s filename)''

或者更好的是,除了 this还有什么办法吗?包做跨平台?

目前运行yarn package时powershell输出的信息是:
'' was unexpected at this time.

最佳答案

您对 的基本选择无需特定于平台的脚本即可跨平台 是:

  • 在 Windows 上也使用 Bash :
  • 从 Bash 运行你的 npm 脚本来自 WSL 使用现有的 Bash 命令 通常包含在 package.json 中文件,例如在您的情况下。
  • 或者,使用 Git for Windows 安装,配置 npm 使用 bash.exe作为调用命令的 shell - 见 this answer [npm v5.1+]。

  • 安装 PowerShell (Core)在所有平台上 (包括 Windows)和 将命令定义为 PowerShell 命令 (见下文)[npm v5.1+]。

  • 请注意 npm 版本要求(版本 5.1 或更高版本),因为使用特定 shell ( script-shell ) 的配置选项在早期版本中不可用。运行 npm -v获取已安装的版本,以及 npm install -g npm如果可能,更新。

    在所有平台上使用 npm 和 PowerShell (Core) [npm v5.1+]:
  • Install PowerShell 核心。
  • 然后配置 npm 以使用 PowerShell (Core) 作为 shell(需要 npm 5.1 或更高版本):
  • 对于您的所有项目(当前用户)或全局(所有用户):
    npm config set script-shell pwsh [--global]
  • 仅针对给定项目(来自该项目的根目录):
    npm config set script-shell pwsh --userconfig ./.npmrc

  • 最后,在您的项目中 package.jsonscripts键,将命令定义为 PowerShell 命令。

  • 在手头的情况下:
    例如,翻译这个 Bash 命令:
    yarn package-common && mv './dist/APP® TV.wgt' "./package/$(yarn -s filename)"
    注意:我已经替换了 ''" ,因为后者更有意义;正如最初所写, ''被 Bash 有效地丢弃,命令替换的结果 $(yarn -s filename)如果它包含空格,可能会破坏命令。
    到这个 PowerShell 命令(v7+):
    yarn package-common && mi './dist/APP® TV.wgt' "./package/$(yarn -s filename)"
    笔记:
  • mi是 PowerShell 的内置别名 Move-Item 小命令。
  • 虽然从 PowerShell 调用脚本也很有意义,但这不是必需的 - 从 cmd.exe 调用或者批处理文件也可以。
  • 要开始使用 PowerShell(核心),请参阅 Learning PowerShell ;还有,http://hyperpolyglot.org/shell将类似 POSIX 的 shell(例如 Bash)的语法与 cmd.exe 的语法并置和 PowerShell 以简洁的表格形式。
  • 关于shell - 如何使用 Bash shell 命令使 npm 项目在 Windows 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55300421/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com