"编译"是否有意义?节点项目与grunt或gulp?

时间:2015-10-27 07:47:47

标签: node.js optimization gruntjs gulp

我花了很多时间用一个grunt文件构建一个webtemplate(前端)来编译"编译"整个项目,并有一个有效的生产代码。

现在我正在开发一个后端项目(带有node / express),我想知道是否对#34;编译"节点项目?

我正在使用Babel的ES6语法,所以我想每次启动项目时(节点index.js或nodemon index.js)Babel都会在ES5中进行转换,然后运行它。

我不关心它是否在项目开始时完成,一旦启动就没有影响。但我不确定。

节点是否读取整个程序并且"保存"它变成了公羊吗?如果是这样的话,我认为连接/编译javascript文件没有用,就像我们习惯使用前端一样。

1 个答案:

答案 0 :(得分:2)

是的,至少它不是一个坏主意。

然而:

  • nodemon不适合制作
  • 当您将babel作为运行时运行时,您可以在代码之上将其作为可能失败的附加层引入。
  • 仅从已编译的js中读取对于较旧的node平台可能更容易,或者当您将其作为模块提供时效率更高。

好多了:

  • 使用NODE_ENV =生产
  • 是的,它确实将它保存到RAM中。解析会更快,但只是轻微。
  • 当你缩小你的代码时,你的js会有更好的编译时间。但副作用(例如更糟糕的可调试性)是权衡取舍。
  • OH:对于不超过某个char计数的功能,可以对V8进行性能优化。但效果可能非常低,因为只有真正的热门功能才能从中受益。
  • 如果您需要发送代码,
  • 编译和uglifying将有助于混淆。 npm shrinkwrap也是一个很好的工具。
  

结论:不要这样做,因为它感觉像是过早优化,这通常是一个坏主意。您将遇到节点可调试性的严重问题,这将是开发时的问题。

     

而是遵循一般的Node.js性能指南,如果您不是针对除生产环境之外的其他平台,请选择具有您需要的所有ES6功能的最新Node.js版本。