我正在处理大量单独的JS文件:
<script defer src="/js/libs/jquery.min.js"></script>
<script defer src="/js/libs/plugins.js"></script>
<!-- application core -->
<script defer src="/js/application.js"></script>
<!-- modules -->
<script defer src="/js/modules/router.js"></script>
<script defer src="/js/modules/feed.js"></script>
<script defer src="/js/modules/files.js"></script>
<script defer src="/js/modules/members.js"></script>
<script defer src="/js/modules/sharebar.js"></script>
<script defer src="/js/modules/utils.js"></script>
在制作中,我使用connect-assetmanager将所有这些文件连接成一个script.js
。如何动态更改我的网站layout.jade
以提供这样的单个JS文件?
<script defer src="/js/script.js"></script>
答案 0 :(得分:2)
我最终使用RequireJS,因为它的优化功能可以为生产构建单个JS文件(main.js)。在开发中,所有文件都是单独的JS文件,它们异步加载,在生产中这些文件被连接成一个大的js文件。
重点是页面的<head>
部分(或加载脚本的任何地方)在生产和开发中保持不变。
<script data-main='/js/main.js' src='/js/plugins/require.js'>
答案 1 :(得分:1)
为什么生产/开发之间的行为不同?它最终可能会让你陷入困境,AFAICT connect-assetmanager并没有给开发周期带来任何阻碍,所以只要一直使用它而不用担心它。
但是,如果必须,只需查看layout.jade中的process.env['NODE_ENV']
值和条件子句。
if production
script(src="/js/script.js")
else
script(src="/js/libs/jquery.min.js")
script(src="/js/libs/plugins.js")
#and so so