有没有办法在Nodepack环境中使用Webpack加载器/在Webpack环境中运行Node应用程序?
例如,我有一个带有样式加载器的webpack配置。在我的Node应用程序中,我执行以下操作:
import style from 'style.css'
console.log(style.someClass)
我想像$ node app.js
答案 0 :(得分: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上的输出......我们可以从内存FS中require
吗?我还没试过 - 有什么想法吗?
答案 1 :(得分:0)
Webpack加载器不是转发器或解释器,它们简单地收集资产,然后将其处理为类似SASS或文本连接器;在Webpacks环境的范围内。
因此无法以您希望的方式重用它们,因为虽然您可以导入并调用它们(它们仍然只是函数+类),但它们不会将CSS转换为JSON对象(它们不会你已经按照你想要的例子写了这个。
看起来你只需要一个css解析器的JS实现 - 看看https://github.com/reworkcss/css
答案 2 :(得分:0)
您应该能够创建一个针对node
环境的编译,只需调用node output.js
即可最终运行该环境,这将立即执行入口点模块。
请注意,如果您使用的是较新版本的Node.js,那么Webpack不支持ES2015模块语法,因此您必须为Node.js配置Babel以及transform the modules。