2016-07-19 4 views
5

Есть ли способ использовать загрузчики Webpack в приложении Node/Запустить приложение Node в среде Webpack?Как использовать загрузчики Webpack в приложении Node?

Например, у меня есть конфигурация webpack с загрузчиком стиля. В моем узле приложение, которое я сделать следующее:

import style from 'style.css' 

console.log(style.someClass) 

Я хочу запустить его как $ node app.js

ответ

0

WebPack погрузчиков не transpilers или переводчики, они просто собрать средства, которые затем обрабатываются прочь к чему-то, как SASS или его текстовый конкатенатор; в пределах среды Webpacks.

Таким образом, невозможно повторно использовать их так, как вы хотите, потому что, хотя вы можете, конечно, импортировать и называть их (они все еще просто функции + классы), они не конвертируют CSS в объекты JSON (они не делайте этого), как вы писали в своем желаемом примере.

Похоже, вам просто нужно выполнение JS КАС парсера - посмотреть на https://github.com/reworkcss/css

+0

Я ищу что-то, что позволяет мне запускать блок кода в среде Webpack. Я не ищу конкретного загрузчика CSS, это просто пример. Но похоже, что единственный способ запустить код в среде Webpack - запустить его с помощью Webpack: '$ webpack app.js' – haxpanel

0

Вы должны быть в состоянии создать компиляцию, нацеленную на node среды, которые вы можете в конечном итоге запустить простой вызов node output.js и это немедленно выполнит модуль точки входа.

Помните, что если вы используете более новую версию Node.js, то Webpack не поддерживает синтаксис модуля ES2015, поэтому вам придется настроить Babel для Node.js, а также на transform the modules.

1

У меня есть идея, которая может работать, основываясь на Webpack NodeJS API. Что делать, если мы помещаем код, который мы хотим, чтобы иметь возможность использовать среду Webpack (с сконфигурированных модулей погрузчиками) в модуль:

appModule.js:

import style from 'style.css' 

console.log(style.someClass) 

И require его следующим:

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) 
}) 

Вероятно, это не будет работать, потому что потребуется внешний вид для вывода на физических FS ... Можем ли мы require из памяти FS? Я еще не пробовал - Любая идея?

Смежные вопросы