我必须对我的项目之一使用Webpack才能为js,css和其他静态资产构建前端包。它做得很好,但是在项目的早期阶段,我只有一些CSS和静态图像,还没有js文件。这是我的完整webpack.config.js
const Webpack = require("webpack");
const Glob = require("glob");
const path = require("path");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const configurator = {
entries: function(){
var entries = {
application: [
'./assets/dummy.js',
],
}
return entries
},
plugins() {
var plugins = [
new CopyWebpackPlugin([{from: "./assets",to: ""}], {copyUnmodified: true,ignore: ["css/**", "js/**", "**.js"] }),
];
return plugins
},
moduleOptions: function() {
return {
rules: [
]
}
},
buildConfig: function(){
const env = process.env.NODE_ENV || "development";
var config = {
mode: env,
entry: configurator.entries(),
output: {filename: "[name].[hash].js", path: `${__dirname}/public/assets`},
plugins: configurator.plugins(),
module: configurator.moduleOptions()
}
return config
}
}
module.exports = configurator.buildConfig()
实际上,它对我的作用是将资产复制到公共目录。我还没有任何JavaScript,但将来会使用。因此,我尝试注释entry
,并将其设置为null或空字符串,但没有运气。似乎Webpack需要如此严重地处理js文件。我当前的解决方案是创建一个空的dummy.js
文件并将其提供给Webpack。恼人的是,尽管我的源js文件完全为空,它还是用一些样板js代码生成了3.3kb application.afff4a3748b8d5d33a3a.js
文件。
我知道这是Webpack的一个用例,Webpack最初是为处理javascript而创建的,但是我敢打赌,很多人仍然将其不仅用于捆绑javascript。因此,我的问题是,有没有一种更好,更优雅的方法来跳过Webpack中的捆绑js文件?
p.s。
我认为,我在这里How to make WebPack copy a library instead of bundling?
找到了一个没有答案的相关问题p.s.#2
建议的重复问题包含无效的Webpack配置Invalid configuration object.
,因此可以接受答案,因此,我不能用它来解决问题。
而且,答案是
webpack将创建一个虚拟javascript文件
我专门问如何避免创建不必要的文件。