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
来处理我的导入:
collectstatic
命令,可以帮助我将所有脚本、字体、样式等收集到所需的文件夹中。一切都很顺利:
- 我的捆绑脚本可用
- 对于样式表,我使用相对导入到“vendor”节点_模块
但是,当我运行编译我的资料时,会在我的
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
})();