hexo-blog-deploy/2021/06/23/利用maven来构建node项目的运行环境/index.html

16 lines
35 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><meta name="theme-color" content="#222"><meta name="generator" content="Hexo 5.4.2"><link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png"><link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png"><link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png"><link rel="mask-icon" href="/images/logo.svg" color="#222"><link rel="stylesheet" href="/css/main.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha256-HtsXJanqjKTc8vVQjO4YMhiqFoXkfBsjBWcX91T1jr8=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.css" integrity="sha256-Vzbj7sDDS/woiFS3uNKo8eIuni59rjyNGtXfstRzStA=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pace/1.2.4/themes/blue/pace-theme-minimal.css"><script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.2.4/pace.min.js" integrity="sha256-gqd7YTjg/BtfqWSwsJOvndl0Bxc8gFImLEkXQT8+qj0=" crossorigin="anonymous"></script><script class="next-config" data-name="main" type="application/json">{"hostname":"kiki.kim","root":"/","images":"/images","scheme":"Gemini","darkmode":false,"version":"8.15.1","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12},"copycode":{"enable":true,"style":"flat"},"bookmark":{"enable":false,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"stickytabs":false,"motion":{"enable":false,"async":false,"transition":{"menu_item":"fadeInDown","post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果:${query}","hits_time":"找到 ${hits} 个搜索结果(用时 ${time} 毫秒)","hits":"找到 ${hits} 个搜索结果"},"path":"/search.xml","localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false}}</script><script src="/js/config.js"></script><meta name="description" content="利用maven来构建node项目从未避免污染全局的node环境"><meta property="og:type" content="article"><meta property="og:title" content="利用maven来构建node项目的运行环境"><meta property="og:url" content="http://kiki.kim/2021/06/23/%E5%88%A9%E7%94%A8maven%E6%9D%A5%E6%9E%84%E5%BB%BAnode%E9%A1%B9%E7%9B%AE%E7%9A%84%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83/index.html"><meta property="og:site_name" content="随言碎语"><meta property="og:description" content="利用maven来构建node项目从未避免污染全局的node环境"><meta property="og:locale" content="zh_CN"><meta property="og:image" content="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesimage-20230423210123301.png"><meta property="og:image" content="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesimage-20230423211834021.png"><meta property="og:image" content="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesimage-20230423212634837.png"><meta property="article:published_time" content="2021-06-23T02:25:34.000Z"><meta property="article:modified_time" content="2023-04-24T10:29:43.405Z"><meta property="article:author" content="小梦同学的blog"><meta property="article:tag" content="JDK"><meta property="article:tag" content="maven"><meta property="article:tag" content="node"><meta name="twitter:card" content="summary"><meta name="twitter:image" content="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesimage-20230423210123301.png"><link rel="canonical" href="http://kiki.kim/2021/06/23/%E5%88%A9%E7%94%A8maven%E6%9D%A5%E6%9E%84%E5%BB%BAnode%E9%A1%B9%E7%9B%AE%E7%9A%84%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83/"><script class="next-config" data-name="page" type="application/json">{"sidebar":"","isHome":false,"isPost":true,"lang":"zh-CN","comments":true,"permalink":"http://kiki.kim/2021/06/23/%E5%88%A9%E7%94%A8maven%E6%9D%A5%E6%9E%84%E5%BB%BAnode%E9%A1%B9%E7%9B%AE%E7%9A%84%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83/","path":"2021/06/23/利用maven来构建node项目的运行环境/","title":"利用maven来构建node项目的运行环境"}</script><script class="next-config" data-name="calendar" type="application/json">""</script><title>利用maven来构建node项目的运行环境 | 随言碎语</title><noscript><link rel="stylesheet" href="/css/noscript.css"></noscript><link rel="alternate" href="/atom.xml" title="随言碎语" type="application/atom+xml"><style>.darkmode--activated{--body-bg-color:#282828;--content-bg-color:#333;--card-bg-color:#555;--text-color:#ccc;--blockquote-color:#bbb;--link-color:#ccc;--link-hover-color:#eee;--brand-color:#ddd;--brand-hover-color:#ddd;--table-row-odd-bg-color:#282828;--table-row-hover-bg-color:#363636;--menu-item-bg-color:#555;--btn-default-bg:#222;--btn-default-color:#ccc;--btn-default-border-color:#555;--btn-default-hover-bg:#666;--btn-default-hover-color:#ccc;--btn-default-hover-border-color:#666;--highlight-background:#282b2e;--highlight-foreground:#a9b7c6;--highlight-gutter-background:#34393d;--highlight-gutter-foreground:#9ca9b6}.darkmode--activated img{opacity:.75}.darkmode--activated img:hover{opacity:.9}.darkmode--activated code{color:#69dbdc;background:0 0}button.darkmode-toggle{z-index:9999}.darkmode-ignore,img{display:flex!important}.beian img{display:inline-block!important}</style></head><body itemscope itemtype="http://schema.org/WebPage"><div class="headband"></div><main class="main"><div class="column"><header class="header" itemscope itemtype="http://schema.org/WPHeader"><div class="site-brand-container"><div class="site-nav-toggle"><div class="toggle" aria-label="切换导航栏" role="button"><span class="toggle-line"></span> <span class="toggle-line"></span> <span class="toggle-line"></span></div></div><div class="site-meta"><a href="/" class="brand" rel="start"><i class="logo-line"></i><p class="site-title">随言碎语</p><i class="logo-line"></i></a><p class="site-subtitle" itemprop="description">咕叽咕叽</p></div><div class="site-nav-right"><div class="toggle popup-trigger" aria-label="搜索" role="button"><i class="fa fa-search fa-fw fa-lg"></i></div></div></div><nav class="site-nav"><ul class="main-menu menu"><li class="menu-item menu-item-home"><a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a></li><li class="menu-item menu-item-tags"><a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签<span class="badge">63</span></a></li><li class="menu-item menu-item-archives"><a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档<span class="badge">55</span></a></li><li class="menu-item menu-item-talk"><a href="/talk/" rel="section"><i class="fa fa-commenting fa-fw"></i>碎语湖</a></li><li class="menu-item menu-item-guestbook"><a href="/guestbook/" rel="section"><i class="fa fa-book fa-fw"></i>留言板</a></li><li class="menu-item menu-item-about"><a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a></li><li class="menu-item menu-item-search"><a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索</a></li></ul></nav><div class="search-pop-overlay"><div class="popup search-popup"><div class="search-header"><span class="search-icon"><i class="fa fa-search"></i></span><div class="search-input-container"><input autocomplete="off" autocapitalize="off" maxlength="80" placeholder="搜索..." spellcheck="false" type="search" class="search-input"></div><span class="popup-btn-close" role="button"><i class="fa fa-times-circle"></i></span></div><div class="search-result-container no-result"><div class="search-result-icon"><i class="fa fa-spinner fa-pulse fa-5x"></i></div></div></div></div><script type="text/javascript" src="/js/cursor/zjAdd.js"></script><div class="musicwyy2" style="top:200px;position:fixed;left:0;bottom:0;z-index:105;opacity:1;width:30px;height:110px;font-size:15px;font-family:'Long Cang'"><button type="button" style="width:30px;top:200px;height:90px;margin-top:10px;margin-bottom:10px;border-width:0;background:#f5f5f5;z-index:200" onclick="musicChange()">播放器</button></div><div class="musicwyy1" style="position:fixed;top:200px;left:0;bottom:0;z-index:100;opacity:1;width:60px;height:110px;font-size:0"><div class="aplayer-miniswitcher" style="top:200px;height:110px;width:20px;display:inline-block;overflow:hidden"></div><div style="width:calc(100% - 30px);top:200px;height:110px;display:none" id="musicZJ"><script type="text/javascript" src="/js/cursor/zjAdd.js"></script><div class="musicwyy2" style="position:fixed;left:0;top:200px;bottom:0;z-index:105;opacity:1;width:30px;height:110px;font-size:15px;font-family:'Long Cang'"><button type="button" style="top:200px;width:30px;height:90px;margin-top:10px;margin-bottom:10px;border-width:0;background:#f5f5f5;z-index:200" onclick="musicChange()">播放器</button></div><div class="musicwyy1" style="position:fixed;top:200px;left:0;bottom:0;z-index:100;opacity:1;width:300px;height:110px;font-size:0"><div class="aplayer-miniswitcher" style="top:200px;height:110px;width:20px;display:inline-block;overflow:hidden"></div><div style="width:calc(100% - 30px);top:200px;height:110px;display:inline-block" id="musicZJ"><iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width="330" height="450" src="//music.163.com/outchain/player?type=0&id=8009036598&auto=0&height=430"></iframe></div></div></div></div></header><aside class="sidebar"><div class="sidebar-inner sidebar-nav-active sidebar-toc-active"><ul class="sidebar-nav"><li class="sidebar-nav-toc">文章目录</li><li class="sidebar-nav-overview">站点概览</li></ul><div class="sidebar-panel-container"><div class="post-toc-wrap sidebar-panel"><div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#1-%E5%87%86%E5%A4%87"><span class="nav-number">1.</span> <span class="nav-text">1. 准备</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#2-%E5%AE%89%E8%A3%85%E5%B9%B6%E9%85%8D%E7%BD%AEmaven"><span class="nav-number">2.</span> <span class="nav-text">2. 安装并配置maven</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#3-%E9%80%9A%E8%BF%87maven%E6%9D%A5%E6%9E%84%E5%BB%BAnode"><span class="nav-number">3.</span> <span class="nav-text">3.通过maven来构建node</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#4-%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7"><span class="nav-number">4.</span> <span class="nav-text">4. 使用技巧</span></a></li></ol></div></div><div class="site-overview-wrap sidebar-panel"><div class="site-author animated" itemprop="author" itemscope itemtype="http://schema.org/Person"><img class="site-author-image" itemprop="image" alt="小梦同学的blog" src="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesbjx.png"><p class="site-author-name" itemprop="name">小梦同学的blog</p><div class="site-description" itemprop="description">欲买桂花同载酒,终不似,少年游。</div></div><div class="site-state-wrap animated"><nav class="site-state"><div class="site-state-item site-state-posts"><a href="/archives/"><span class="site-state-item-count">55</span> <span class="site-state-item-name">日志</span></a></div><div class="site-state-item site-state-tags"><a href="/tags/"><span class="site-state-item-count">63</span> <span class="site-state-item-name">标签</span></a></div></nav></div><div class="links-of-author animated"><span class="links-of-author-item"><a href="https://github.com/M-HALLIDAY" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;M-HALLIDAY" rel="noopener me" target="_blank"><i class="fab fa-github fa-fw"></i></a> </span><span class="links-of-author-item"><a href="mailto:halliday2023@163.com" title="E-Mail → mailto:halliday2023@163.com" rel="noopener me" target="_blank"><i class="fa fa-envelope fa-fw"></i></a> </span><span class="links-of-author-item"><a href="/atom.xml" title="RSS → &#x2F;atom.xml" rel="noopener me"><i class="fa fa-rss-square fa-fw"></i></a></span></div><div class="cc-license animated" itemprop="license"><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/zh-CN" class="cc-opacity" rel="noopener" target="_blank"><img src="https://cdnjs.cloudflare.com/ajax/libs/creativecommons-vocabulary/2020.11.3/assets/license_badges/small/by_nc_sa.svg" alt="Creative Commons"></a></div></div></div></div></aside></div><div class="main-inner post posts-expand"><div class="post-block"><article itemscope itemtype="http://schema.org/Article" class="post-content" lang="zh-CN"><link itemprop="mainEntityOfPage" href="http://kiki.kim/2021/06/23/%E5%88%A9%E7%94%A8maven%E6%9D%A5%E6%9E%84%E5%BB%BAnode%E9%A1%B9%E7%9B%AE%E7%9A%84%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83/"><span hidden itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="image" content="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesbjx.png"><meta itemprop="name" content="小梦同学的blog"></span><span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="随言碎语"><meta itemprop="description" content="欲买桂花同载酒,终不似,少年游。"></span><span hidden itemprop="post" itemscope itemtype="http://schema.org/CreativeWork"><meta itemprop="name" content="利用maven来构建node项目的运行环境 | 随言碎语"><meta itemprop="description" content=""></span><header class="post-header"><h1 class="post-title" itemprop="name headline">利用maven来构建node项目的运行环境</h1><div class="post-meta-container"><div class="post-meta"><span class="post-meta-item"><span class="post-meta-item-icon"><i class="far fa-calendar"></i> </span><span class="post-meta-item-text">发表于</span> <time title="创建时间2021-06-23 10:25:34" itemprop="dateCreated datePublished" datetime="2021-06-23T10:25:34+08:00">2021-06-23</time> </span><span class="post-meta-item"><span class="post-meta-item-icon"><i class="far fa-calendar-check"></i> </span><span class="post-meta-item-text">更新于</span> <time title="修改时间2023-04-24 18:29:43" itemprop="dateModified" datetime="2023-04-24T18:29:43+08:00">2023-04-24</time> </span><span class="post-meta-item" title="阅读次数" id="busuanzi_container_page_pv"><span class="post-meta-item-icon"><i class="far fa-eye"></i> </span><span class="post-meta-item-text">阅读次数:</span> <span id="busuanzi_value_page_pv"></span> </span><span class="post-meta-break"></span> <span class="post-meta-item" title="本文字数"><span class="post-meta-item-icon"><i class="far fa-file-word"></i> </span><span class="post-meta-item-text">本文字数:</span> <span>3.6k</span> </span><span class="post-meta-item" title="阅读时长"><span class="post-meta-item-icon"><i class="far fa-clock"></i> </span><span class="post-meta-item-text">阅读时长 &asymp;</span> <span>7 分钟</span></span></div></div></header><div class="post-body" itemprop="articleBody"><p>利用maven来构建node项目从未避免污染全局的node环境</p><span id="more"></span><h2 id="1-准备">1. 准备</h2><ul><li>JDK 安装并配置环境变量</li><li><a target="_blank" rel="noopener" href="https://dlcdn.apache.org/maven/maven-3/3.9.1/binaries/apache-maven-3.9.1-bin.tar.gz">maven-3.9.1-bin.tar.gz</a></li></ul><h2 id="2-安装并配置maven">2. 安装并配置maven</h2><ol><li><p>先安装好JDK并配置环境变量 。见之前的文章 <a href="/2020/01/08/JDK%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/" title="JDK安装和配置环境变量">JDK安装和配置环境变量</a></p></li><li><p>解压<strong>maven-3.9.1-bin.tar.gz</strong>到指定目录,例如:</p><figure class="highlight tex"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">D:<span class="keyword">\Program</span> Files<span class="keyword">\Java</span><span class="keyword">\apache</span>-maven-3.9.1</span><br></pre></td></tr></table></figure></li><li><p><code>bin</code>目录添加到环境变量</p><p><img src="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesimage-20230423210123301.png" alt="image-20230423210123301"></p></li><li><p>修改maven本地仓库目录maven从远程仓库中下载构件默认是存在当前的用户目录中的因此最好修改一下地址</p><figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">修改D:\Program Files\Java\apache-maven-3.9.1\conf\settings.xml</span><br><span class="line"></span><br><span class="line">这个默认是注释掉的,把它修改并添加进来</span><br><span class="line"><span class="tag">&lt;<span class="name">localRepository</span>&gt;</span>/path/to/local/repo<span class="tag">&lt;/<span class="name">localRepository</span>&gt;</span></span><br><span class="line">改成你自己的:</span><br><span class="line"><span class="tag">&lt;<span class="name">localRepository</span>&gt;</span>E:/maven/repo<span class="tag">&lt;/<span class="name">localRepository</span>&gt;</span></span><br></pre></td></tr></table></figure></li><li><p>修改maven源为阿里源(可选,全局的)</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">D:\Program Files\Java\apache-maven-3.9.1\conf\settings.xml</span><br><span class="line"></span><br><span class="line">&lt;mirror&gt;</span><br><span class="line"> &lt;id&gt;aliyunmaven&lt;/id&gt;</span><br><span class="line"> &lt;mirrorOf&gt;*&lt;/mirrorOf&gt;</span><br><span class="line"> &lt;name&gt;阿里云公共仓库&lt;/name&gt;</span><br><span class="line"> &lt;url&gt;https://maven.aliyun.com/repository/public&lt;/url&gt;</span><br><span class="line">&lt;/mirror&gt;</span><br></pre></td></tr></table></figure></li><li><p>再将修改好的settings.xml文件复制一份到新建仓库E:\maven\repo目录下</p></li></ol><h2 id="3-通过maven来构建node">3.通过maven来构建node</h2><ol><li>在node项目下面新建<code>pom.xml</code>文件,并且和<code>package.json</code>放在一起</li></ol><p><code>pom.xml</code>内容:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br></pre></td><td class="code"><pre><span class="line">&lt;project xmlns = &quot;http://maven.apache.org/POM/4.0.0&quot;</span><br><span class="line"> xmlns:xsi = &quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span><br><span class="line"> xsi:schemaLocation = &quot;http://maven.apache.org/POM/4.0.0</span><br><span class="line"> http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;</span><br><span class="line"> </span><br><span class="line"> &lt;!-- 模型版本 --&gt;</span><br><span class="line"> &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;</span><br><span class="line"> &lt;groupId&gt;com.zmr.test&lt;/groupId&gt;</span><br><span class="line"> &lt;!-- 项目的唯一ID一个groupId下面可能多个项目就是靠artifactId来区分的 --&gt;</span><br><span class="line"> &lt;artifactId&gt;test-war&lt;/artifactId&gt;</span><br><span class="line"> &lt;!-- 版本号 --&gt;</span><br><span class="line"> &lt;version&gt;1.0&lt;/version&gt;</span><br><span class="line"> &lt;!-- &lt;packagin&gt;war&lt;/packagin&gt; --&gt;</span><br><span class="line"> &lt;name&gt;test-war&lt;/name&gt;</span><br><span class="line"> </span><br><span class="line"> &lt;repositories&gt;</span><br><span class="line"> &lt;repository&gt;</span><br><span class="line"> &lt;id&gt;alimaven&lt;/id&gt;</span><br><span class="line"> &lt;url&gt;https://maven.aliyun.com/repository/public&lt;/url&gt;</span><br><span class="line"> &lt;/repository&gt;</span><br><span class="line"> &lt;/repositories&gt;</span><br><span class="line"> </span><br><span class="line"> &lt;pluginRepositories&gt;</span><br><span class="line"> &lt;pluginRepository&gt;</span><br><span class="line"> &lt;id&gt;alimaven&lt;/id&gt;</span><br><span class="line"> &lt;url&gt;https://maven.aliyun.com/repository/public&lt;/url&gt;</span><br><span class="line"> &lt;/pluginRepository&gt;</span><br><span class="line"> &lt;/pluginRepositories&gt;</span><br><span class="line"> </span><br><span class="line"> &lt;properties&gt;</span><br><span class="line"> &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;</span><br><span class="line"> &lt;node.version&gt;v12.18.0&lt;/node.version&gt;</span><br><span class="line"> &lt;frontend-maven-plugin.version&gt;1.10.0&lt;/frontend-maven-plugin.version&gt;</span><br><span class="line"> &lt;project.reporting.outputEncoding&gt;UTF-8&lt;/project.reporting.outputEncoding&gt;</span><br><span class="line"> &lt;maven.compiler.encoding&gt;UTF-8&lt;/maven.compiler.encoding&gt;</span><br><span class="line"> &lt;/properties&gt;</span><br><span class="line"> </span><br><span class="line"> &lt;build&gt;</span><br><span class="line"> &lt;finalName&gt;test&lt;/finalName&gt;</span><br><span class="line"> &lt;plugins&gt;</span><br><span class="line"> &lt;plugin&gt;</span><br><span class="line"> &lt;groupId&gt;com.github.eirslett&lt;/groupId&gt;</span><br><span class="line"> &lt;artifactId&gt;frontend-maven-plugin&lt;/artifactId&gt;</span><br><span class="line"> &lt;version&gt;$&#123;frontend-maven-plugin.version&#125;&lt;/version&gt;</span><br><span class="line"> &lt;executions&gt;</span><br><span class="line"> &lt;execution&gt;</span><br><span class="line"> &lt;id&gt;install node and npm&lt;/id&gt;</span><br><span class="line"> &lt;goals&gt;</span><br><span class="line"> &lt;goal&gt;install-node-and-npm&lt;/goal&gt;</span><br><span class="line"> &lt;/goals&gt;</span><br><span class="line"> &lt;configuration&gt;</span><br><span class="line"> &lt;nodeVersion&gt;$&#123;node.version&#125;&lt;/nodeVersion&gt;</span><br><span class="line"> &lt;!-- &lt;npmVersion&gt;6.4.1&lt;/npmVersion&gt; --&gt;</span><br><span class="line"> &lt;downloadRoot&gt;http://npm.taobao.org/mirrors/node/&lt;/downloadRoot&gt;</span><br><span class="line"> &lt;/configuration&gt;</span><br><span class="line"> &lt;/execution&gt;</span><br><span class="line"> &lt;execution&gt;</span><br><span class="line"> &lt;id&gt;npm install&lt;/id&gt;</span><br><span class="line"> &lt;goals&gt;</span><br><span class="line"> &lt;goal&gt;npm&lt;/goal&gt;</span><br><span class="line"> &lt;/goals&gt;</span><br><span class="line"> &lt;configuration&gt;</span><br><span class="line"> &lt;arguments&gt;install --registry=https://registry.npm.taobao.org &lt;/arguments&gt;</span><br><span class="line"> &lt;/configuration&gt;</span><br><span class="line"> &lt;/execution&gt;</span><br><span class="line"> &lt;/executions&gt;</span><br><span class="line"> &lt;/plugin&gt;</span><br><span class="line"> &lt;/plugins&gt;</span><br><span class="line"> &lt;/build&gt;</span><br><span class="line">&lt;/project&gt;</span><br><span class="line"></span><br></pre></td></tr></table></figure><ol start="2"><li>使用:</li></ol><p><code>pom.xml</code>所在的目录打开cmd窗口执行<code>mvn package</code></p><p><img src="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesimage-20230423211834021.png" alt="image-20230423211834021"></p><p>会在当前目录下生成node和node_modules两个目录里面包含了当前node项目所需要的运行环境。</p><h2 id="4-使用技巧">4. 使用技巧</h2><p>如果需要运行npm相关的命令可添加<code>node_env.bat</code>,然后加载到当前的cmd窗口中即可</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">node_env.bat</span><br><span class="line">写入下面的内容并保存,其实就是添加了一个临时的环境变量</span><br><span class="line"></span><br><span class="line">set PROJECT_HOME=%~dp0</span><br><span class="line">set PATH=%PROJECT_HOME%\node;%PROJECT_HOME%\node_modules\.bin;%PROJECT_HOME%\node\yarn\dist\bin;%PATH%</span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure><p><img src="https://halliday.oss-cn-nanjing.aliyuncs.com/imagesimage-20230423212634837.png" alt="image-20230423212634837"></p></div><footer class="post-footer"><div><div style="text-align:center;color:#ccc;font-size:24px;padding-top:10px">----- The End -----</div><div><center><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/css/share.min.css"><div class="social-share" data-sites="weibo, qq, qzone,wechat"></div><script src="http://apps.bdimg.com/libs/jquery/1.8.2/jquery.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/js/social-share.min.js"></script></center></div></div><div class="post-copyright"><ul><li class="post-copyright-author"><strong>本文作者: </strong>小梦同学的blog</li><li class="post-copyright-link"><strong>本文链接:</strong> <a href="http://kiki.kim/2021/06/23/%E5%88%A9%E7%94%A8maven%E6%9D%A5%E6%9E%84%E5%BB%BAnode%E9%A1%B9%E7%9B%AE%E7%9A%84%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83/" title="利用maven来构建node项目的运行环境">http://kiki.kim/2021/06/23/利用maven来构建node项目的运行环境/</a></li><li class="post-copyright-license"><strong>版权声明: </strong>本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/zh-CN" rel="noopener" target="_blank"><i class="fab fa-fw fa-creative-commons"></i>BY-NC-SA</a> 许可协议。转载请注明出处!</li></ul></div><div class="post-tags"><a href="/tags/JDK/" rel="tag"><i class="fa fa-tag"></i> JDK</a> <a href="/tags/maven/" rel="tag"><i class="fa fa-tag"></i> maven</a> <a href="/tags/node/" rel="tag"><i class="fa fa-tag"></i> node</a></div><script type="text/javascript">for(var tagsall=document.getElementsByClassName("post-tags"),i=tagsall.length-1;0<=i;i--)for(var tags=tagsall[i].getElementsByTagName("a"),j=tags.length-1;0<=j;j--){var r,g,b,golden_ratio=.618033988749895,s=.5,v=.999,h=golden_ratio+.8*Math.random()-.5,h_i=parseInt(6*h),f=6*h-h_i,p=v*(1-s),q=v*(1-f*s),t=v*(1-(1-f)*s);switch(h_i){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q;break;default:b=g=r=1}tags[j].style.background="rgba("+parseInt(255*r)+","+parseInt(255*g)+","+parseInt(255*b)+",0.5)"}</script><div class="post-nav"><div class="post-nav-item"><a href="/2021/06/20/debian+dwm+rdesktop%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8/" rel="prev" title="debian+dwm+rdesktop的安装和使用"><i class="fa fa-chevron-left"></i> debian+dwm+rdesktop的安装和使用</a></div><div class="post-nav-item"><a href="/2021/07/20/python+faker%E7%94%9F%E6%88%90%E6%96%87%E4%BB%B6/" rel="next" title="python+faker生成文件">python+faker生成文件 <i class="fa fa-chevron-right"></i></a></div></div></footer></article></div></div></main><footer class="footer"><div class="footer-inner"><div class="beian"><a href="https://beian.miit.gov.cn/" rel="noopener" target="_blank">苏ICP备2021047152号-1 </a><img src="https://www.beian.gov.cn/img/new/gongan.png" alt=""><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=%E7%94%B3%E8%AF%B7%E4%B8%AD" rel="noopener" target="_blank">申请中</a></div><div class="copyright">&copy; <span itemprop="copyrightYear">2023</span> <span class="with-love"><i class="fa fa-heart"></i> </span><span class="author" itemprop="copyrightHolder">小梦同学的blog</span></div><div class="busuanzi-count"><span class="post-meta-item" id="busuanzi_container_site_uv"><span class="post-meta-item-icon"><i class="fa fa-user"></i> </span><span class="site-uv" title="总访客量"><span id="busuanzi_value_site_uv"></span> </span></span><span class="post-meta-item" id="busuanzi_container_site_pv"><span class="post-meta-item-icon"><i class="fa fa-eye"></i> </span><span class="site-pv" title="总访问量"><span id="busuanzi_value_site_pv"></span></span></span></div><div class="powered-by"><a href="https://hexo.io/" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.js.org/" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动</div><span id="timeDate">载入天数...</span> <span id="times">载入时分秒...</span><script>var now=new Date;function createtime(){var n=new Date("03/01/2023 10:00:00");now.setTime(now.getTime()+250),days=(now-n)/1e3/60/60/24,dnum=Math.floor(days),hours=(now-n)/1e3/60/60-24*dnum,hnum=Math.floor(hours),1==String(hnum).length&&(hnum="0"+hnum),minutes=(now-n)/1e3/60-1440*dnum-60*hnum,mnum=Math.floor(minutes),1==String(mnum).length&&(mnum="0"+mnum),seconds=(now-n)/1e3-86400*dnum-3600*hnum-60*mnum,snum=Math.round(seconds),1==String(snum).length&&(snum="0"+snum),document.getElementById("timeDate").innerHTML="本站已安全运行 "+dnum+" 天 ",document.getElementById("times").innerHTML=hnum+" 小时 "+mnum+" 分 "+snum+" 秒."}setInterval("createtime()",250)</script></div></footer><div class="back-to-top" role="button" aria-label="返回顶部"><i class="fa fa-arrow-up fa-lg"></i> <span>0%</span></div><div class="reading-progress-bar"></div><a href="https://github.com/M-HALLIDAY" class="github-corner" title="在 GitHub 上关注我" aria-label="在 GitHub 上关注我" rel="noopener" target="_blank"><svg width="80" height="80" viewBox="0 0 250 250" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin:130px 106px" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><noscript><div class="noscript-warning">Theme NexT works best with JavaScript enabled</div></noscript><script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js" integrity="sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/next-theme-pjax/0.6.0/pjax.min.js" integrity="sha256-vxLn1tSKWD4dqbMRyv940UYw4sXgMtYcK6reefzZrao=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" integrity="sha256-oP6HI9z1XaZNBrJURtCoUT5SUnxFr8s3BzRl+cbzUq8=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js" integrity="sha256-yt2kYMy0w8AbtF89WXb2P1rfjcP/HTHLT7097U8Y5b8=" crossorigin="anonymous"></script><script src="/js/comments.js"></script><script src="/js/utils.js"></script><script src="/js/next-boot.js"></script><script src="/js/pjax.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/hexo-generator-searchdb/1.4.1/search.js" integrity="sha256-1kfA5uHPf65M5cphT2dvymhkuyHPQp5A53EGZOnOLmc=" crossorigin="anonymous"></script><script src="/js/third-party/search/local-search.js"></script><script src="/js/third-party/fancybox.js"></script><script src="/js/third-party/pace.js"></script><script data-pjax async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><script src="https://unpkg.com/darkmode-js@1.5.7/lib/darkmode-js.min.js"></script><script>var options = {
bottom: '64px',
right: 'unset',
left: '32px',
time: '0.5s',
mixColor: 'transparent',
backgroundColor: 'transparent',
buttonColorDark: '#100f2c',
buttonColorLight: '#fff',
saveInCookies: true,
label: '🌓',
autoMatchOsTheme: true
}
const darkmode = new Darkmode(options);
window.darkmode = darkmode;
darkmode.showWidget();</script><script async src="/js/cursor/love.min.js"></script><script type="text/javascript" src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"></script></body></html>