首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当output.globalObject:"this“被指定时,webpack为什么要用全球”自我“而不是”this“来输出?

当output.globalObject:"this“被指定时,webpack为什么要用全球”自我“而不是”this“来输出?
EN

Stack Overflow用户
提问于 2021-06-07 13:13:21
回答 1查看 861关注 0票数 1

我正在用webpack-cli 4.7.0.我有一个库,我想为两个不同的环境编译,一个用于web,另一个用于节点。根据这份文件,这是很容易实现的,我导出两个独立的,有效的webpack配置从webpack.config.js。

因此,我创建了两个有效的webpack信任,一个服务器和一个客户端。Webpack输出两个指定的独立文件,但坚持使用"self“而不是"this”,尽管我在配置中指定了output.globalObject: "this"。如果我理解正式文件,情况就不应该是这样了。

webpack.config.js

代码语言:javascript
复制
const path = require( "path" );
// const webpack = require( "webpack" );


const serverConfig  = {
    mode: "production",
    entry: "./src/Check4.js",
    target: "node",
    output: {
        path: path.resolve( __dirname, "dist" ),
        filename: "Check4.node.js",
        globalObject: "this",
        library : {
            type: "commonjs2",
            export: "default"

        }

    }
};

const clientConfig  = {
    mode: "production",
    entry: "./src/Check4.web.js",
    target: "web",
    output: {
        path: path.resolve( __dirname, "dist" ),
        filename: "Check4.js",
        globalObject: "this",
        library : {
            name: "Check4",
            type: "window",
        }
    }
};

module.exports = [serverConfig, clientConfig];

作为参考,下面是webpack输出的头几个字节,以表明它使用的是全局"self“而不是"this”。

代码语言:javascript
复制
(()=>{var e={172:e=>{self,e.exports=(()=>{"use strict";var e={502:...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-07 19:54:42

答案在于我的依赖性。我写了一门课,这门课是靠我写的。父类没有编译,所以webpack试图同时编译这两个类。

许多小时后,我偶然发现了这件事,使我找到了解决这个问题的办法。https://github.com/markdalgleish/static-site-generator-webpack-plugin/issues/79

嘿,更新;在浏览了一下之后,对我来说,这个错误来自同构的提取依赖项(https://github.com/matthew-andrews/iso…)。似乎与文档相似的是人们没有定义的问题,因为这种预呈现不会发生在浏览器上下文中。我今天没有更多的时间去研究为什么会这样,也不会有解决的办法,但这是我的直觉。检查您的多填充和依赖项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67872307

复制
相关文章

相似问题

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