如何从模块包访问Nuxt.js中的HotModuleReplacementPlugin

时间:2019-06-14 16:13:50

标签: node.js vue.js webpack nuxt.js

我正在编写一个模块/程序包,该程序将从我的项目中的所有.vue文件中抓取特定的类名,然后创建一些基于:lang()的sass,以扩展其对应的全局sass文件。我已经达到了将所有渲染的CSS正确写入CSS文件的地步,但是在hmr(HotModuleReplacement)或热重载期间,我无法让Nuxt重载模块。涉及HMR时,Nuxt.js网站上的文档也很狭窄,这也无济于事。

显然,这仅应在开发环境中发生,到目前为止,我已经尝试了几乎所有的Nu​​xt Hook,但我认为没有任何东西与热重装有关。我还尝试使用extendBuild()HotModuleReplacementPlugin()添加到this.options.plugins数组,但这似乎并没有向我展示任何插件。至少在文档(即module.hot)中没有描述它的使用方式。

我的模块被添加到模块部分的nuxt.config.js中:

['styles-lang', {
    pathPattern: 'app/**/*.vue',
    rootPath: __dirname || process.env.ROOT_PATH,
}],

我尝试参考的一些代码:

import { HotModuleReplacementPlugin } from 'webpack';

this.extendBuild((config, { isDev }) => {
        if (isDev) {
            this.options.plugins.push(
                new HotModuleReplacementPlugin()
            );
        }
    });

--- and ---

this.nuxt.hook('render:done', () => {
    console.info(module.hot);
});

我基本上只是希望获得对插件的访问权,或者是允许我的模块在热重装期间更新的替代方法。欢迎所有建议/建议。

谢谢。

0 个答案:

没有答案