首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >像DefinePlugin一样向Webpack注入功能

像DefinePlugin一样向Webpack注入功能
EN

Stack Overflow用户
提问于 2017-08-13 15:35:49
回答 2查看 628关注 0票数 2

我想在加载程序和运行时代码之间进行通信。具体来说,我想编写一个加载器,它存储已加载到一个变量中的所有CSS,我可以在运行时中读出这些变量。下面是一些用来说明的虚拟代码:

myLoader.js

代码语言:javascript
复制
module.exports = function(content) {
    // This should store the content accessible to the runtime code
    storeCss(content);
    return content;
};

app.js

代码语言:javascript
复制
// This should load the CSS as stored by the loader
const css = getStoredCss();

例如,使用webpack.DefinePlugin,我可以这样做:

代码语言:javascript
复制
new webpack.DefinePlugin({
  SOME_GLOBALLY_AVAILABLE_CONST: JSON.stringify('my value'),
}),

现在,在我的加载程序和运行时代码中,我可以访问SOME_GLOBALLY_AVAILABLE_CONST并获得'my value'。是否可以编写一个插件来实现storeCssgetStoredCss,这样我就可以在加载程序和运行时代码中访问它们了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-04 18:10:49

现在,您可以使用新的DefinePlugin.runtimeValue.来完成这一任务。

webpack.config.js

代码语言:javascript
复制
new webpack.DefinePlugin({
    STORED_CSS: webpack.DefinePlugin.runtimeValue(
        function () { return JSON.stringify(getStoredCss()) }, []
    )
})

app.js

代码语言:javascript
复制
const css = STORED_CSS

票数 2
EN

Stack Overflow用户

发布于 2017-08-13 17:57:00

代码语言:javascript
复制
new webpack.DefinePlugin({
  SOME_GLOBALLY_AVAILABLE_FUNCTION_THAT_PROBABLY_SHOULDNT_BE_ALL_CAPS: require('./myLoader.js').toString(),
}),
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45662033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档