用grunt或gulp“编译”节点项目有意义吗?

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

现在我正在开发一个后端项目(使用node / express),我想知道“编译”节点项目是否合理?

我用Babel使用ES6语法,所以我想象每次启动项目(节点index.js或nodemon index.js)Babel在ES5中传输它,然后运行它。

我不在乎在项目开始的时候是否已经完成,一旦启动就没有影响。 但我不确定。

节点是否读取整个程序并将其“保存”到内存中? 如果是这样,我想像它是没有用的连接/编译JavaScript文件,就像我们习惯于与前端。

是的,至less这不是一个坏主意。

然而:

  • nodemon不适用于生产
  • 当你将babel作为运行时运行时,将其作为可能失败的附加层引入到代码之上。
  • 只有从已编译好的js中读取对于旧的node平台来说可能会更容易一些,或者当您将它作为模块提供时,可以更高效。

所以更好:

  • 用NODE_ENV =生产
  • 是的,它确实将其保存到RAM中。 parsing将会更快,但只是勉强。
  • 当你缩小你的代码的时候,你的js会有更好的编译时间。 但副作用(例如更糟糕的可debugging性)是折衷的。
  • OH:对于不超过特定char数的函数,可以对V8进行性能优化。 但效果可能真的很低,因为只有真正的热门function从中受益。
  • 编译和uglifying将是好混淆,如果你需要运送你的代码。 npm shrinkwrap也是一个很好的工具。

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

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