如何从Webpack加载器访问DOM

时间:2018-11-09 01:01:16

标签: javascript webpack webpack-loader

我正在为特定的文件扩展名编写webpack加载器,我想将自定义导入附加到DOM

module.exports = function(source) {
    ...
    document.appendChild(myImport)

    return `export default 'hello'`;
}

但无法访问DOM

  

ReferenceError:未定义文档

是否可以通过加载程序访问DOM?

我的webpack配置为:

const path = require('path')

module.exports = {
    ...
    module: {
        rules: [{
            test: /\.myextension$/,
            use: {
                loader: 'my-loader'
            }
        }]
    }
};

1 个答案:

答案 0 :(得分:1)

不,来自加载程序的代码将在node.js env上运行,该节点无法控制dom(浏览器env)。为了能够操作dom,您必须通过加载程序输出一个代码,该代码将插入到该类型的文件中,然后在浏览器中执行时会进行修改。

类似的东西:

module.exports = function(source) {
    return `export default function(){
        document.appendChild(myImport)
    }`;
}