2016-07-19 14 views
5

Có cách nào để sử dụng bộ nạp Webpack trong ứng dụng Nút/Chạy ứng dụng Nút trong môi trường Webpack không?Làm cách nào để sử dụng trình tải Webpack trong ứng dụng Node?

Ví dụ: tôi có cấu hình webpack có trình nạp kiểu. Trong ứng dụng Node của tôi, tôi làm như sau:

import style from 'style.css' 

console.log(style.someClass) 

I Wanna chạy nó như $ node app.js bộ tải

Trả lời

0

Webpack không transpilers người phiên dịch, họ đơn giản thu thập tài sản này sau đó được xử lý ra một cái gì đó giống như Sass hay text concatenator; trong giới hạn môi trường Webpacks.

Do đó không thể tái sử dụng chúng theo cách bạn muốn, bởi vì trong khi bạn có thể nhập và gọi chúng (chúng vẫn chỉ là hàm + lớp), chúng không chuyển đổi CSS thành đối tượng JSON (chúng không làm điều này) như bạn đã viết trong ví dụ mong muốn của mình.

Dường như bạn chỉ cần một thi JS của một phân tích cú pháp css - có một cái nhìn tại https://github.com/reworkcss/css

+0

Tôi đang tìm thứ gì đó cho phép tôi chạy một khối mã trong môi trường Webpack. Tôi không tìm kiếm trình tải CSS cụ thể, đó chỉ là một ví dụ. Nhưng có vẻ như cách duy nhất để chạy mã trong môi trường Webpack là chạy nó với Webpack: '$ webpack app.js' – haxpanel

0

Bạn sẽ có thể tạo ra một nhắm vào node môi trường mà bạn cuối cùng có thể chạy bằng cách đơn giản gọi node output.js và điều này biên soạn sẽ ngay lập tức thực thi mô-đun điểm vào. Hãy chú ý, trong trường hợp bạn đang sử dụng phiên bản mới hơn của Node.js, Webpack đó không hỗ trợ cú pháp mô đun ES2015, vì vậy bạn sẽ phải định cấu hình Babel cho Node.js cũng như transform the modules.

1

Tôi có ý tưởng có thể hoạt động, dựa trên Webpack NodeJS API. Nếu chúng ta đặt mã mà chúng tôi muốn để có thể sử dụng môi trường Webpack (với các bộ tải mô-đun cấu hình) vào một mô-đun:

appModule.js:

import style from 'style.css' 

console.log(style.someClass) 

require nó như sau:

app.js:

import Webpack from 'webpack' 
import MemoryFS from 'memory-fs' 

... 

webpackConfig.entry = 'appModule.js' 
webpackConfig.output = 'appModule-out.js' 

let compiler = Webpack(webpackConfig) 
let mfs = new MemoryFS() 

compiler.outputFileSystem = mfs 
compiler.run(function (err, stats) { 
    require(webpackConfig.output) 
}) 

có lẽ nó sẽ không làm việc vì yêu cầu ngoại hình cho sản lượng trên FS vật lý ... có thể chúng ta require từ bộ nhớ FS? Tôi chưa thử nó - Ý tưởng nào?

Các vấn đề liên quan