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