遥远不是距离 發表於 2019-6-29 15:42:00

Node.js实现热加载

<p>不管是node.js原生开发,还是借助express,kora等框架开发node.js的情况下,在对代码做出更新后,都是需要重启已生效我们的文件的。</p>
<p>本文记录一次在原生node.js开发的时候,为项目添加热加载。避免一次次手动的重启浪费精力~</p>
<p>进入正题,我们需要借助一个node.js的开发工具nodemon</p>
<p>nodemon官方解释如下:</p>
<p>nodemon is a tool that helps develop node.js based applications by automatically restarting the node application when file changes in the directory are detected.</p>
<p>nodemon does&nbsp;not&nbsp;require&nbsp;<em>any</em>&nbsp;additional changes to your code or method of development. nodemon is a replacement wrapper for&nbsp;<code>node</code>, to use&nbsp;<code>nodemon</code>&nbsp;replace the word&nbsp;<code>node</code>&nbsp;on the command line when executing your script.</p>
<p>意思大概就是说nodemon是一个node.js的辅助开发工具,具有监听目录文件的作用。并在监听后作出响应。</p>
<p>使用:</p>
<div class="cnblogs_code">
<pre>npm install -<span style="color: rgba(0, 0, 0, 1)">g nodemon

npm install </span>-s nodemon</pre>
</div>
<p>安装好以后了,我们将已经启动的node.js项目关闭,然后通过nodemon命令重启</p>
<div class="cnblogs_code">
<pre>nodemon index.js</pre>
</div>
<p>这里的index.js就是node.js项目的主入口文件。</p>
<p>对于express来言的话就是&nbsp; nodemon&nbsp; bin/www</p>
<p>还有一个比较重要的情景就是,我们如果说添加了日志文件。或者其他文件。这些文件是不需要进行热加载的。因此。我们就需要想git上传一样。做出一些过滤</p>
<p>在根目录下常见nodemon.json文件</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">{
</span>"restartable": "rs"<span style="color: rgba(0, 0, 0, 1)">,
</span>"ignore"<span style="color: rgba(0, 0, 0, 1)">: [
      </span>".git"<span style="color: rgba(0, 0, 0, 1)">,
      </span>".svn"<span style="color: rgba(0, 0, 0, 1)">,
      </span>"logs"<span style="color: rgba(0, 0, 0, 1)">,
      </span>"pem"<span style="color: rgba(0, 0, 0, 1)">,
      </span>"node_modules/**/node_modules"<span style="color: rgba(0, 0, 0, 1)">
],
</span>"verbose": <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
</span>"execMap"<span style="color: rgba(0, 0, 0, 1)">: {
      </span>"js": "node server/index.js"<span style="color: rgba(0, 0, 0, 1)">
},
</span>"watch"<span style="color: rgba(0, 0, 0, 1)">: [

],
</span>"env"<span style="color: rgba(0, 0, 0, 1)">: {
    </span>"NODE_ENV": "development"<span style="color: rgba(0, 0, 0, 1)">
},
</span>"ext": "js json"<span style="color: rgba(0, 0, 0, 1)">
}</span></pre>
</div>
<p>restartable就是启动的方式</p>
<p>ignore就是文件的过滤</p>
<p>verbose是否展示详细信息</p>
<p>execMap就是启动的主入口文件</p>
<p>watch可以是监听的文件。</p>
<p>env的话就是环境的配置</p>
<p>在该文件配置ok以后,我们就不需要nodemon&nbsp; &nbsp;启动文件了。而是直接输入nodemon命令就好。他会根据配置的json文件进行编译执行。这个的配置和pm2是有很大相似之处的。</p>
<p>如果想要知道更加详细的配置,不防了解一下官方文档:</p>
<p>https://www.npmjs.com/package/nodemon</p>
<p>至此,node.js实现热更新的方法就记录到这里,已记录自己成长的点滴。</p>

</div>
<div id="MySignature" role="contentinfo">
    <div>作者:狗尾草</div>
<div>出处:https://www.cnblogs.com/bgwhite/
</div>
<p>-------------------------------------------</p>
<p>个性签名:海到无边天作岸,山登绝顶人为峰!</p>
<p>如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个<span>“推荐”</span>哦,博主在此感谢!</p>
<p></p><br><br>
来源:https://www.cnblogs.com/bgwhite/p/11106797.html
頁: [1]
查看完整版本: Node.js实现热加载