babel CLI menyalin file nonjs

90

Saya menjalankan perintah babel cli

babel src --out-dir lib

Untuk menyalin skrip es6 dari src ke lib. Namun, itu tidak akan menyalin file css / scss yang saya miliki di folder src /. Apakah ada cara untuk membuatnya menyalinnya juga?

yangli1990
sumber
Fungsi Babel adalah mengolah jsfile. Gunakan cpuntuk menyalin. Lebih baik lagi, buatlah teguk.
Amadan
17
tidak setuju 100%, babel harus menyertakan fungsionalitas untuk memindahkan file non-js karena ini adalah fungsionalitas yang diperlukan untuk> 50% kasus penggunaan
Alexander Mills

Jawaban:

177

Babel memiliki opsi file salin untuk ini:

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

Catatan: Memang benar bahwa tujuan utama babel adalah untuk memproses file javascript, tetapi rangkaian alat besar babel saat ini sering kali membuatnya tidak perlu menggunakan penyiapan skrip build yang lebih kompleks gulpdan serupa. Penyiapan tanpa teguk dapat menambahkan ini ke 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"
    ]
  }
}
Emil Ingerslev
sumber
1
ini berhasil, hampir, kecuali itu tidak menyalin file jsx: /
Alexander Mills
Mungkinkah Anda belum menambahkan preset react?
Emil Ingerslev
Nah, jika preset react tidak diinstal itu harus tetap memindahkan file kan? :) tidak ada keduanya, saya mengajukan masalah dengan babel, jika tidak ini berhasil dan saya memberi suara positif :)
Alexander Mills
Ya, saya rasa begitu. Menemukan bahwa log perubahan ( github.com/babel/babel/blob/master/CHANGELOG.md ) menyatakan bug tentang ini diperbaiki di versi 5.8.13-5.8.20: Perbaiki bug di mana file yang dapat dikompilasi babel tidak ditulis saat diabaikan dengan tanda --copy-files.
Emil Ingerslev
7

Saya menemukan cara untuk melakukan ini dengan menggunakan modul ncp

npm install ncp

Modul ini pada dasarnya seperti cp kecuali modul ini berfungsi

Ini bukan modul global, jadi untuk menjalankan ini kami menggunakan

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
yangli1990
sumber