babel CLI copie des fichiers nonjs


90

J'exécute une commande babel cli

babel src --out-dir lib

Pour copier les scripts es6 de src dans lib. Cependant, il ne copiera pas les fichiers css / scss que j'ai dans le dossier src /. Y a-t-il un moyen de les faire copier également?


La fonction de Babel est de traiter les jsfichiers. Utilisez cppour la copie. Mieux encore, créez un gulpfile.
Amadan le

17
pas d'accord à 100%, babel devrait inclure une fonctionnalité pour déplacer des fichiers non-js car c'est une fonctionnalité nécessaire pour> 50% des cas d'utilisation
Alexander Mills

Réponses:


176

Babel a l' option de copie de fichiers pour cela:

babel src --out-dir lib --copy-files

Remarque: Il est vrai que l'objectif principal de babels est de traiter les fichiers javascript, mais la grande suite d'outils de babel de nos jours rend souvent inutile la configuration de scripts de construction plus complexes gulp. Une configuration sans gulp pourrait ajouter ceci à packages.json:

{
  ...
  "devDependencies": {
    "babel": "*",
    "babel-cli": "^6.4.0",
    "babel-preset-es2015": "^6.3.13"
  },
  "scripts": {
    "watch": "babel --watch src --out-dir lib --source-maps inline --copy-files",
    "build": "babel src --out-dir lib --source-maps inline --copy-files" 
  },
  "babel": {
    "presets": [
      "es2015"
    ]
  }
}

1
cela a fonctionné, presque, sauf qu'il n'a pas copié un fichier jsx: /
Alexander Mills

Se pourrait-il que vous n'ayez pas ajouté le préréglage de réaction?
Emil Ingerslev

Eh bien, si le préréglage de réaction n'est pas installé, il devrait toujours déplacer le fichier à droite? :) il n'a ni l'un ni l'autre, j'ai déposé un problème avec babel, sinon cela a fonctionné et j'ai voté pour :)
Alexander Mills

Ouais, je suppose. Trouvé que le journal des modifications ( github.com/babel/babel/blob/master/CHANGELOG.md ) indique qu'un bogue à ce sujet est corrigé dans la version 5.8.13-5.8.20: Correction d'un bogue où les fichiers que Babel peut compiler n'étaient pas écrit lorsqu'il est ignoré avec l'indicateur --copy-files.
Emil Ingerslev

7

J'ai trouvé un moyen de le faire en utilisant le module ncp

npm install ncp

Ce module est fondamentalement comme un cp sauf qu'il fonctionne sur

Ce n'est pas un module global, donc pour l'exécuter, nous utilisons

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.