Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Npm Webpack-如何告知不为特定入口点编译js文件 上下文_Npm_Webpack_Fonts_Node Modules_Webfonts - Fatal编程技术网

Npm Webpack-如何告知不为特定入口点编译js文件 上下文

Npm Webpack-如何告知不为特定入口点编译js文件 上下文,npm,webpack,fonts,node-modules,webfonts,Npm,Webpack,Fonts,Node Modules,Webfonts,实际上,我正在通过npm管理一些依赖项。然后我编写了一个webpack.config.js来处理我的导入: 捆绑Jquery+popper+Bootstrap.js 根据我的模块需要捆绑codemirror(xml自动完成等) 从FontU模块收集字体 我使用的是django,因此有一个collectstatic命令,可以帮助我将所有脚本、字体、样式等收集到所需的文件夹中。一切都很顺利: 我的捆绑脚本可用 对于样式表,我使用相对导入到“vendor”节点_模块 我能够将字体发送到node_

实际上,我正在通过
npm
管理一些依赖项。然后我编写了一个
webpack.config.js
来处理我的导入:

  • 捆绑Jquery+popper+Bootstrap.js
  • 根据我的模块需要捆绑codemirror(xml自动完成等)
  • 从FontU模块收集字体
  • 我使用的是django,因此有一个
    collectstatic
    命令,可以帮助我将所有脚本、字体、样式等收集到所需的文件夹中。一切都很顺利:

    • 我的捆绑脚本可用
    • 对于样式表,我使用相对导入到“vendor”节点_模块
    我能够将字体发送到node_模块,并按预期将其发送到正确的文件夹

    问题 我对webpack world还不熟悉,当然我并没有按应有的方式使用它,但它正在工作。
    但是,当我运行编译我的资料时,会在我的
    font
    文件夹中生成一个额外文件
    fontawesome.js
    ,是否可以避免这种意外行为
    我错过了什么

    只要我不导入这个文件,这没什么大不了的,但我不想污染我的回购协议

    编辑 我更新了我的网页配置的代码。
    我发现,这个文件是从我的入口点的
    filename
    生成的。但我不想要这个文件:)

    wepback.config.js
    “网页包”:“^5.6.0”,

    Fontsome.js 以及生成的文件的内容,如果它可以帮助网页专家:

    (() => {
        "use strict";
        var t = {};
        t.g = function () {
            if ("object" == typeof globalThis) return globalThis;
            try {
                return this || new Function("return this")()
            } catch (t) {
                if ("object" == typeof window) return window
            }
        }(), (() => {
            var r;
            t.g.importScripts && (r = t.g.location + "");
            var e = t.g.document;
            if (!r && e && (e.currentScript && (r = e.currentScript.src), !r)) {
                var p = e.getElementsByTagName("script");
                p.length && (r = p[p.length - 1].src)
            }
            if (!r) throw new Error("Automatic publicPath is not supported in this browser");
            r = r.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"), t.p = r + "../"
        })(), t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p
    })();
    

    不幸的是,这是webpack中的一个bug:

    同时,添加一个自定义的webpack插件可以直接删除这些文件。以下是我用来删除所有JS文件的内容(因为我使用CSS文件作为条目):

    插件:[
    {
    //删除空JS文件;解决以下问题:https://github.com/webpack/webpack/issues/11671
    应用:(编译器)=>{
    compiler.hooks.afterEmit.tap('DeleteJSFilesPlugin',(编译)=>{
    const iter=compilation.emittedAssets.entries();
    用于(国际热核实验堆常数[键]){
    if(key.match(/.\.js$/)){
    取消链接同步(path.join(compilation.outputOptions.path,key));
    }
    }
    });
    }
    }
    ]
    
    谢谢,显然我并不孤单:),所以我将等待修补程序。编辑后添加示例插件来解决此问题。感谢您提供解决方案:)
    (() => {
        "use strict";
        var t = {};
        t.g = function () {
            if ("object" == typeof globalThis) return globalThis;
            try {
                return this || new Function("return this")()
            } catch (t) {
                if ("object" == typeof window) return window
            }
        }(), (() => {
            var r;
            t.g.importScripts && (r = t.g.location + "");
            var e = t.g.document;
            if (!r && e && (e.currentScript && (r = e.currentScript.src), !r)) {
                var p = e.getElementsByTagName("script");
                p.length && (r = p[p.length - 1].src)
            }
            if (!r) throw new Error("Automatic publicPath is not supported in this browser");
            r = r.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"), t.p = r + "../"
        })(), t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p, t.p
    })();