如何在Node应用程序中使用Webpack加载器?

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

例如我有一个webpackconfiguration,有一个样式加载器。 在我的Node应用程序中,我执行以下操作:

import style from 'style.css' console.log(style.someClass) 

我想运行它像$ node app.js

       

网上收集的解决方案 "如何在Node应用程序中使用Webpack加载器?"

我有一个基于Webpack NodeJS API的想法。 如果我们把我们希望能够使用Webpack环境的代码(用configuration的模块加载器)放到一个模块中:

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上寻找输出…我们可以从内存FS require吗? 我还没有尝试过 – 任何想法?

Webpack装载者不是转译员或解释者,他们简单地收集资产,然后处理到像SASS或文本连接器这样的东西; 在Webpacks环境的范围内。

因此,不可能以您想要的方式重用它们,因为当然您可以导入并调用它们(它们仍然是函数+类),但它们不会将CSS转换为JSON对象(它们不会这个)就像你在你想要的例子中写的那样。

看起来你只需要一个CSSparsing器的JS实现 – 看看https://github.com/reworkcss/css

您应该能够创build一个针对最终可以通过调用node output.js来运行的node环境的编译,并立即执行入口点模块。

请注意,如果您使用的是更新版本的Node.js,那么Webpack将不支持ES2015模块语法,因此您还必须为Node.jsconfigurationBabel来转换模块 。