2016-07-19 32 views
5

有没有一种方法可以在Node应用程序中使用Webpack加载器/在Webpack环境中运行Node应用程序?如何在Node应用程序中使用Webpack加载器?

例如我有一个webpack配置有一个样式加载器。在我的节点程序,我做到以下几点:

import style from 'style.css' 

console.log(style.someClass) 

我想喜欢$ node app.js

回答

0

的WebPack装载机运行它不是transpilers或解释,他们简单的收集资产,然后处理掉的东西像SASS或文本连接器;在Webpacks环境的范围内。

因此,它是不可能重用他们在你想要的方式,因为当你当然可以进口,并呼吁他们(他们还是功能+类),它们没有转换的CSS JSON对象(他们不要这样做),正如你在你想要的例子中写的那样。

它看起来像你只需要一个JS实现一个css解析器 - 看看https://github.com/reworkcss/css

+0

我要找的东西,使我在的WebPack环境中运行的代码块。我不是在寻找特定的CSS加载器,这只是一个例子。但它看起来像一个的WebPack环境中运行代码的唯一方法就是用的WebPack运行它:'$的WebPack app.js' – haxpanel

0

你应该能够创建一个编译目标,你可以通过简单地调用node output.js这最终运行node环境将立即执行入口点模块。

请注意,如果您使用的是较新版本的Node.js,Webpack不支持ES2015模块语法,所以您必须为Node.js配置Babel以及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?我还没有尝试过 - 任何想法?

相关问题