Iva*_*nSt 5 shell powershell command-line cmd npm
我最近接手的一个项目中有一些 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",
}
Run Code Online (Sandbox Code Playgroud)
这个项目是由某人在 MAC 上编写的。我如何将以下部分转换为有效的 Powershell / cmd 命令?我还没有在任何地方找到任何关于此的信息。它运行命令并将回显值附加到它从中调用的字符串。
''./package/$(yarn -s filename)''
Run Code Online (Sandbox Code Playgroud)
或者更好的是,除了这个包之外还有其他方法可以跨平台吗?
目前,运行 yarn package 时在 powershell 中输出的消息是:
'' was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)
在没有特定于平台的脚本的情况下跨平台的基本选择是:
在 Windows 上也使用 Bash:
通过WSL从 Bash 运行您的 npm 脚本,并使用通常包含在package.json文件中的现有 Bash 命令,例如您的情况。
或者,安装Git for Windows 后,将 npm 配置bash.exe为用作调用命令的 shell - 请参阅此答案[npm v5.1+]。
在所有平台(包括 Windows )上安装PowerShell(核心),并将命令定义为 PowerShell 命令(见下文)[npm v5.1+]。
请注意 npm 版本要求(版本 5.1 或更高版本),因为使用特定 shell ( script-shell)的配置选项在早期版本中不可用。运行npm -v以获取已安装的版本,并npm install -g npm在可能的情况下进行更新。
安装PowerShell 核心。
然后配置 npm 以使用 PowerShell (Core) 作为 shell(需要 npm 5.1 或更高版本):
对于您的所有项目(当前用户)或全局(所有用户):
npm config set script-shell pwsh [--global]
Run Code Online (Sandbox Code Playgroud)
仅针对给定项目(来自该项目的根目录):
npm config set script-shell pwsh --userconfig ./.npmrc
Run Code Online (Sandbox Code Playgroud)
最后,在您项目package.json的scripts键中,将命令定义为 PowerShell 命令。
在手头的情况下:
例如,翻译这个 Bash 命令:
yarn package-common && mv './dist/APP® TV.wgt' "./package/$(yarn -s filename)"
Run Code Online (Sandbox Code Playgroud)
注意:我已替换''为",因为后者更有意义;正如最初编写的那样,Bash''有效地丢弃了,$(yarn -s filename)如果命令包含空格,命令替换的结果可能会破坏命令。
到这个 PowerShell 命令(v7+):
yarn package-common && mi './dist/APP® TV.wgt' "./package/$(yarn -s filename)"
Run Code Online (Sandbox Code Playgroud)
笔记:
mi是 PowerShell 的Move-Itemcmdlet的内置别名。
虽然从 PowerShell调用脚本也很有意义,但这不是必需的 - 从cmd.exe或批处理文件调用也可以。
要开始使用 PowerShell(核心),请参阅学习 PowerShell;此外,http: //hyperpolyglot.org/shellcmd.exe以简洁的表格形式将类 POSIX 的 shell(例如 Bash)的语法与 PowerShell的语法并列。
| 归档时间: |
|
| 查看次数: |
5693 次 |
| 最近记录: |