2017-08-16 3 views
1

J'ai modifié mes scripts package.json comme suit (suggéré par this post et this one). Cela fonctionne et fait ce qui est attendu. Ensuite, j'ai essayé de substituer l'écho dans la copie réelle d'un fichier comme celui-ci.Comment exécuter deux commandes NPM en copiant séquentiellement un fichier comme dernière étape?

... 
"deploy": "ng build && copy ./src/web.config ./dist", ... 

Cependant, cela échoue avec l'erreur ci-dessous. '' Copy '' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier séquentiel. Je sais que je peux résoudre cette tâche par Grunting ou Gulping, mais je voudrais garder les choses simples et voir si c'est possible. Est-ce?

J'ai essayé d'entourer les chemins d'apostrophes et même d'exécuter la commande de copie en tant que commande unique du script. Pas de chance.

+0

comment échouer? Y a-t-il une erreur? – n00dl3

+0

@ n00dl3 Désolé à ce sujet. J'ai collé dans une ancienne version de la question. S'il vous plaît voir l'actuel. En ce qui concerne votre question - l'erreur dit qu'il n'y a pas une telle commande, plus ou moins. –

Répondre

2

copy n'est pas une commande bash valide. Essayez d'utiliser cp à la place.

Vous pouvez écrire un script nodejs qui ne fait que copier ce fichier.

copy.js

var fs = require('fs'); 
fs.createReadStream('./src/web.config') 
    .pipe(fs.createWriteStream('./dist/web.config')); 

... 
"deploy": "ng build && node run ./copy.js . 

Je l'ai en cours d'exécution en utilisant M $ -DOS COPY. Il fonctionne également en utilisant PowerShell en utilisant Copy-Item. N'oubliez pas que vous devez utiliser des barres obliques inverses sur M $, dont vous avez également besoin pour vous échapper.

"deploy": "COPY .\\a\\test .\\b\\test"
ou
"deploy": "Copy-Item .\\a\\test .\\b\\test"