NodeJS / ExpressJS:在生产中提供单个连接的JS文件
我正在处理大量的单个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
。 我怎样才能dynamic改变我的网站layout.jade
服务这样的单个JS文件?
<script defer src="/js/script.js"></script>
我结束了使用RequireJS的优化function,你可以build立一个单一的JS文件(main.js)进行生产。 在开发中,所有文件都是独立的JS文件,asynchronous加载这些文件,这些文件被连接成一个大的js文件。
主要的一点是你的页面的<head>
部分(或者你加载脚本的地方)在生产和开发中保持不变。
<script data-main='/js/main.js' src='/js/plugins/require.js'>
为什么这样做会产生不同的生产/发展? 它最终可能会让你陷入困境,而AFAICT connect-assetmanager并没有真正增加开发周期的阻碍,所以只要一直使用它,别担心。
但是,如果你必须的话,只需要在process.env['NODE_ENV']
中查看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