首次使用Yarn为.NET Core项目添加jQuery遇文件冗余问题求助
解决Yarn安装jQuery时下载过多文件的问题
刚接触Yarn碰到这种情况太正常了,我给你拆解下原因和解决办法:
为什么Yarn会下载123个文件?
Yarn是从npm仓库拉取包的,而npm上的jquery包包含了完整的源码仓库内容——比如未压缩的源码、测试用例、文档、各类配置文件等等,这些都是给前端开发者做二次开发或调试准备的。而NuGet上的jQuery包是专门针对.NET生态打包的,只保留了生产环境需要的精简文件(比如压缩后的jquery.min.js),所以两者下载的内容差异才会这么大。
怎么只获取项目需要的jQuery文件?
其实你要的核心文件已经在下载的包里面了,那些多余的文件完全不用管,只需要提取有用的部分就行:
- 找到项目里的
node_modules/jquery/dist目录,这里面的jquery.js(未压缩版,适合开发调试)和jquery.min.js(压缩版,适合生产环境)就是你项目真正需要的文件。 - 把这两个文件复制到你的.NET Core项目的
wwwroot/lib/jquery目录下,之后就能像之前用NuGet时一样正常引用了。
自动化复制(推荐)
不想每次手动复制的话,可以给项目加个自动复制的任务,省得重复操作:
- 打开你的
.csproj文件,添加以下XML配置:<Target Name="CopyJqueryAssets" AfterTargets="Build"> <Copy SourceFiles="node_modules/jquery/dist/jquery.min.js" DestinationFolder="wwwroot/lib/jquery" /> <!-- 如果需要保留未压缩的调试版,就加上下面这行 --> <!-- <Copy SourceFiles="node_modules/jquery/dist/jquery.js" DestinationFolder="wwwroot/lib/jquery" /> --> </Target> - 这样每次构建项目时,Yarn下载的jQuery核心文件都会自动复制到静态资源目录,完全不用手动干预。
额外小提示
以后用Yarn安装其他前端包,大部分都会是类似的结构——核心生产文件通常在dist或者build目录里,其他文件都是开发相关的,不需要放到项目的静态资源中。
内容的提问来源于stack exchange,提问作者Xorcist
相关产品推荐
相关产品推荐

