Mein Workflow ist Npm-Skripte, Ausführen von Befehlen in meinem node_module zusammen mit einfachen Shell-Befehle.Wie verwenden Backticks in Npm-Skripten auf Windows
Leider macht es dies für Windows-Benutzer schwierig, weil ich in einigen Befehlen Backticks verwende (siehe Beispiel unten). Ich habe eine Pull-Anfrage, die freiwillig zu konvertieren, um shellJS/shx für meine Build, so dass mein Repo plattformübergreifend erstellen wird, aber wir können nicht eine Lösung für Backticks in NPM-Skripte.
Frage:
- Welche Shell npm nicht verwendet? Unter Windows scheint es keine Backticks zu unterstützen.
- Gibt es einen Workaround? Piping hilft nicht, ach, rm, mkdir usw. benutzen nicht stdin.
Beispiel Graviszeichen Verwendung in package.json:
"mkdirs": [
"dist/AS",
"libs",
"models/scripts"
],
"scripts": {
"mkdirs": "mkdir -p `bin/pkgkey.js mkdirs`",
....
.. wo das bin/pkgkey.js mkdirs
Skript einfach die mkdirs Array zurückgibt. Das mag merkwürdig erscheinen, aber es ist großartig, um Arbeitsabläufe im npm-Stil zu organisieren.
Das PKGKEY Skript (vereinfacht):
#!/usr/bin/env node
const fs = require('fs')
const json = JSON.parse(fs.readFileSync('package.json'))
const key = process.argv[2]
let val = json[key]
if (Array.isArray(val)) val = val.join(' ')
process.stdout.write(val)
kein Benutzer Fenster, aber können Sie die Zitate nicht entkommen: ' "mkdirs": "mkdir -p \" bin/pkgkey.js mkdirs \ "",' – Dominik
@Dominik Die OP genannten Backticks: ' \ '' aber ja. – ifconfig
Ja, er sagte, dass sie nicht funktionieren, also ziehe zu Zitaten, die in allen Shells funktionieren ... nein? – Dominik