Javascript 如何在没有动态导入的情况下在next中拆分commons js?
我的项目中有一个文件,其中有几个Javascript 如何在没有动态导入的情况下在next中拆分commons js?,javascript,webpack,next.js,Javascript,Webpack,Next.js,我的项目中有一个文件,其中有几个export-ASSET\u-NAME=require('/assets/myAsset.png')这样导出,我将它用于一些ui位,我想使用url-loader以这些资产图像为基础 然后,我在项目的各个页面中使用这个文件,即从“/assets.js”import{ASSET\u NAME} 检查完我的构建项目后,我可以看到所有这些base64字符串都位于我的commons.js文件中。理想情况下,我希望这个文件是它自己的,比如assets.js,这样它就可以与co
export-ASSET\u-NAME=require('/assets/myAsset.png')
这样导出,我将它用于一些ui位,我想使用url-loader
以这些资产图像为基础
然后,我在项目的各个页面中使用这个文件,即从“/assets.js”import{ASSET\u NAME}
检查完我的构建项目后,我可以看到所有这些base64字符串都位于我的
commons.js
文件中。理想情况下,我希望这个文件是它自己的,比如assets.js
,这样它就可以与commons.js
并行加载。阅读完文档后,我看到的唯一方法是通过,但是我不想等待此文件,也不想在用户执行某些操作时加载它,我只想将它作为单独的文件并行加载到我的页面/与commons分开,js您需要在next.config.js
文件中指定一个新的splitChunk
// next.config.js
module.exports = {
webpack(config, options) {
if (!options.isServer) {
config.optimization.splitChunks.cacheGroups.assetsChunk = {
chunks: 'all',
enforce: true,
minChunks: 1,
name: 'assets-chunk',
priority: 10,
test: /[\\\/]path-to-your-asset[\\\/]/,
};
}
return config;
},
};
只需将资产的路径替换为导入路径(或者部分路径,因为它是正则表达式)
欲了解更多信息,请阅读。您是否有机会详细说明为什么需要在此处进行客户检查<代码>!options.isServer通常块分割对服务器端没有任何影响,如果你想将其应用于服务器(为什么?),你可以删除此检查:]你知道我如何将块的数量限制在不超过3个,我在谷歌机器人上遇到了很多麻烦。