如何从 webpack 加载器访问 DOM

How to access DOM from webpack loader

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

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

    return `export default 'hello'`;
}

但是 DOM 无法访问

ReferenceError: document is not defined

有没有办法从我的加载程序访问 DOM?

我的 webpack 配置是:

const path = require('path')

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

不,来自加载程序的代码将在 node.js 环境中成为 运行,它对 dom(浏览器环境)没有任何影响。为了能够操作 dom,您必须通过加载程序输出一个代码,该代码将被插入到该类型的文件中,然后在浏览器上执行时它会进行修改。

类似于:

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