babel CLI sao chép các tệp nonjs


90

Tôi đang chạy lệnh cli của babel

babel src --out-dir lib

Để sao chép các tập lệnh es6 từ src vào lib. Tuy nhiên, nó sẽ không sao chép các tệp css / scss mà tôi có trong thư mục src /. Có cách nào để làm cho nó sao chép chúng không?


Chức năng của Babel là xử lý jstệp. Sử dụng cpđể sao chép. Tốt hơn, hãy tạo một gulpfile.
Amadan

17
không đồng ý 100%, babel nên bao gồm các chức năng cho việc di chuyển các file không js vì đây là chức năng cần thiết cho> 50% các trường hợp sử dụng
Alexander Mills

Câu trả lời:


176

Babel có tùy chọn sao chép tệp cho việc này:

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

Lưu ý: Đúng là mục đích chính của babels là xử lý các tệp javascript, nhưng bộ công cụ lớn của babel ngày nay thường khiến cho việc thiết lập tập lệnh xây dựng phức tạp hơn cũng không cần thiết gulp. Một thiết lập gulp-less có thể thêm cái này vào 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
điều này hầu như đã hoạt động, ngoại trừ nó không sao chép tệp jsx: /
Alexander Mills

Có thể là bạn đã không thêm cài đặt trước phản ứng?
Emil Ingerslev

tốt, nếu cài đặt trước phản ứng không được cài đặt, nó vẫn sẽ di chuyển tệp phải không? :) nó đã không phải, tôi nộp một vấn đề với babel, nếu không này đã làm việc và tôi upvoted :)
Alexander Mills

Vâng tôi nghĩ thế. Nhận thấy rằng nhật ký thay đổi ( github.com/babel/babel/blob/master/CHANGELOG.md ) cho biết một lỗi về điều này đã được sửa trong phiên bản 5.8.13-5.8.20: Sửa lỗi trong đó các tệp mà babel có thể biên dịch không được được ghi khi bị bỏ qua với cờ --copy-files.
Emil Ingerslev

7

Tôi đã tìm thấy một cách để thực hiện việc này bằng cách sử dụng mô-đun ncp

npm install ncp

Mô-đun này về cơ bản giống như một cp ngoại trừ nó hoạt động trên

Đây không phải là một mô-đun chung, vì vậy để chạy nó, chúng tôi sử dụng

node -e \"require('ncp').ncp('./src', './lib')\" && babel src --out-dir lib
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.