前端开发工作stream程

我很好奇,如果其他人正在使用类似的方法来挖掘,或者如果有人有一个思想或build议,以帮助改善工作stream程。 据我所知,这是一个有点原创的方法。

所以基本上,我使用NodeJS来开发我的客户端代码。 我使用Grunt +手表来自动连接和缩小所有我的项目源代码到一个.min文件,它被写入到public / js文件夹中。 但是,为了testing我使用Jasmine-node,所以我需要一个索引文件(仅用于此目的),它需要所有的项目源文件。 但是,因为我需要在Node和浏览器中运行相同的代码,所以我将所有内容添加到全局项目命名空间,例如:

myApp.framework.someClass 

在myapp.js文件中,我然后导出到节点(如果module + exports存在)。 这允许我的所有对象都暴露给节点,而不必将module.exports添加到每个源文件,而是可以简单地执行:

 (function() { myApp.framework.someClass = function() {...} })(); 

在每个文件,甚至是简单的:

 myApp.framework.someClass = function() {...} 

这对于客户端来说非常好,因为内存中已经有了一切,但是缺点是在Node中,有时候尝试访问myApp命名空间中的另一个类将会失败,因为我没有使用像RequireJS这样的东西来pipe理依赖关系。

我的想法可能是像在标准节点应用程序中一样添加对文件的需求,但是在构build过程中,请删除任何节点特定的内容。

想法/评论请!

我已经看到这样的技巧被用来在节点和浏览器环境中使用JS代码。 这是来自asynchronous库:

 // Node.js if (typeof module !== 'undefined' && module.exports) { module.exports = async; } // AMD / RequireJS else if (typeof define !== 'undefined' && define.amd) { define([], function () { return async; }); } // included directly via <script> tag else { root.async = async; } 

https://github.com/caolan/async/blob/master/lib/async.js

希望有所帮助!