任何人都有任何经验或知道任何好的解决方案捆绑和缩减模块化JavaScript,如RequireJS / AMD在ASP.NET MVC项目?
是最好的方式使用RequireJS optimizer(也许在后期构建操作?) – 或者有什么更好的ASP.NET MVC?
解决方法
我认为你会碰到的问题是如果你使用匿名定义。如果你想要一个包含所有定义的组合/捆绑脚本文件,你必须命名它们。
例如。
define("someModule",["jquery","ko"],function($,ko) { ... });
代替
define(["jquery",ko) { ... });
如果使用文件名作为模块名称,您将能够异步加载(未捆绑)以及预加载(捆绑)。这样,你可以在调试模式下工作,以及释放模式,而不必改变你的要求。
我没有经验,RequireJS优化器知道它是否照顾匿名定义。
更新:
我最近不得不这样做,我遇到的问题之一是脚本标记加载require.js的data-main属性。由于main.js文件对捆绑的模块有依赖性,因此需要在main.js之前但在require.js之后加载。所以我不得不沟通data-main和加载该文件(unbundled)最后。
从
<script src="../JS/require-v2.1.2.js" type="text/javascript" data-main="main.js"></script>
至
<script src="../JS/require-v2.1.2.js" type="text/javascript"></script> <%: System.Web.Optimization.Scripts.Render("~/bundles/signup") %> <script src="main.js" type="text/javascript"></script>
我没有看,但如果bundle配置可以确保main.js是最后,那么甚至不需要最后一个脚本标记。