babel CLI คัดลอกไฟล์ nonjs


90

ฉันใช้คำสั่ง babel cli

babel src --out-dir lib

ในการคัดลอกสคริปต์ es6 จาก src ไปยัง lib อย่างไรก็ตามจะไม่คัดลอกไฟล์ css / scss ที่ฉันมีในโฟลเดอร์ src / มีวิธีทำให้คัดลอกด้วยหรือไม่?


ฟังก์ชันของ Babel คือการประมวลผลjsไฟล์ ใช้cpสำหรับถ่ายเอกสาร ยังดีกว่าสร้าง gulpfile
Amadan

17
ไม่เห็นด้วย 100% babel ควรมีฟังก์ชันสำหรับการย้ายไฟล์ที่ไม่ใช่ js เนื่องจากเป็นฟังก์ชันที่จำเป็นสำหรับกรณีการใช้งาน> 50%
Alexander Mills

คำตอบ:


177

Babel มีตัวเลือกคัดลอกไฟล์สำหรับสิ่งนี้:

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

หมายเหตุ: เป็นเรื่องจริงที่วัตถุประสงค์หลักของ babels คือการประมวลผลไฟล์จาวาสคริปต์ แต่ชุดเครื่องมือขนาดใหญ่ของ Babel ในปัจจุบันมักทำให้ไม่จำเป็นที่จะต้องใช้การตั้งค่าสคริปต์การสร้างที่ซับซ้อนมากขึ้นในลักษณะgulpเดียวกัน การตั้งค่าอึกน้อยสามารถเพิ่มสิ่งนี้ใน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
สิ่งนี้ใช้งานได้เกือบยกเว้นไม่ได้คัดลอกไฟล์ jsx: /
Alexander Mills

เป็นไปได้ไหมที่คุณไม่ได้เพิ่มค่าที่ตั้งไว้ล่วงหน้าของการตอบสนอง
Emil Ingerslev

ถ้าไม่ได้ติดตั้ง react preset ก็ยังควรย้ายไฟล์ใช่ไหม :) มันก็ไม่ได้ฉันยื่นปัญหากับ babel มิฉะนั้นจะได้ผลและฉันโหวตให้ :)
Alexander Mills

ใช่ฉันเดาอย่างนั้น พบว่าบันทึกการเปลี่ยนแปลง ( github.com/babel/babel/blob/master/CHANGELOG.md ) ระบุข้อบกพร่องเกี่ยวกับสิ่งนี้ได้รับการแก้ไขในเวอร์ชัน 5.8.13-5.8.20: แก้ไขข้อบกพร่องที่ไฟล์ที่ babel สามารถรวบรวมไม่ได้ ถูกเขียนเมื่อละเว้นด้วยแฟล็ก --copy-files
Emil Ingerslev

7

ฉันพบวิธีที่ทำได้โดยใช้โมดูล ncp

npm install ncp

โดยทั่วไปโมดูลนี้จะเหมือนกับ cp ยกเว้นจะใช้งานได้

นี่ไม่ใช่โมดูลส่วนกลางดังนั้นในการเรียกใช้สิ่งนี้เราจึงใช้

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.