如何完全卸载Node.js,然后从头开始重新安装(Mac OS X)


1289

我的节点版本始终是v0.6.1-pre,即使我安装了brew节点并且NVM也安装了v0.6.19。

我的节点版本是:

node -v
v0.6.1-pre

NVM这样说(我在一个bash终端中第一次安装了一个版本的节点之后):

nvm ls
v0.6.19
current:    v0.6.19

但是当我重新启动bash时,这是我看到的:

nvm ls
v0.6.19
current:    v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)

那么这个幻影节点0.6.1-pre版本在哪里,我该如何摆脱它?我正在尝试通过NPM安装库,以便可以在项目上工作。

我尝试使用BREW在NVM之前使用brew update和进行更新brew install node。我尝试删除我的“节点”目录以及我/usr/local/include的“节点”和“ node_modules”目录/usr/local/lib。我尝试按照以下说明卸载npm并重新安装。

所有这些都是因为我试图更新节点的旧版本以安装“ zipstream”库。现在,我的用户目录中有文件夹,并且节点版本STILL并不是最新的,即使NVM表示它正在使用0.6.19。

理想情况下,我想卸载nodejs,npm和nvm,然后从头开始重新安装整个系统。



/ usr / bin / node是另一个...
Aaron Blenkush

1
这对于通过pkg文件安装节点的任何人都可能有帮助。superuser.com/questions/36567/…–
karthikeayan

Mac 10.13.5拥有/ Users / myusername / node_modules我也应该删除此文件夹吗?我在此线程中搜索,但似乎没人遇到这个问题
vikramvi

@Pacerier即使在gist中遵循以下指示后,Mac OS 10.13.5上仍存在节点和npm
vikramvi

Answers:


1696

显然,存在一个/Users/myusername/local包含includewith nodelibwith node和and 的文件夹node_modules/usr/local我不知道如何以及为什么创建它,而不是在我的文件夹中。

删除这些本地引用可修复幻影v0.6.1-pre。如果有人有解释,我会选择它作为正确答案。

编辑:

您可能还需要执行其他说明:

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

等价于(与上述相同)...

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp 

或(与上述相同)损坏...

要完全卸载node + npm,请执行以下操作:

  1. 转到/ usr / local / lib并删除任何节点node_modules
  2. 转到/ usr / local / include并删除任何nodenode_modules目录
  3. 如果你安装了酿造安装节点,然后运行BREW卸载节点在终端
  4. 检查主目录中是否有任何本地lib包含文件夹,并从此处删除任何节点node_modules
  5. 转到/ usr / local / bin并删除任何节点可执行文件

您可能还需要执行以下操作:

sudo rm -rf /opt/local/bin/node /opt/local/include/node /opt/local/lib/node_modules
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d

此外,NVM修改了中的PATH变量$HOME/.bashrc,该变量必须手动还原

然后下载nvm并按照说明安装节点。我相信node的最新版本是npm附带的,但是您也可以重新安装它。


82
我也不得不rm -rf /Users/[homedir]/.npm
brokenindexfinger14年

17
还需要删除/Users/[homedir]/.nvm
n0pe 2014年

42
我还跑了brew doctor,然后brew prune为NPM清理了一堆损坏的符号链接。
克里斯·雅各布

54
我整理了一个脚本,该脚本现在已经过实战测试。谢谢@DominicTancredi,这个效果很好!gist.github.com/brock/5b1b70590e1171c4ab54
布洛克

13
我还必须添加:sudo rm -rf ~/.node-gyp。在切换到brew之前,我已经在MacPorts中添加了它。
JESii 2014年

518

对于Brew用户,OSX

去除:

brew uninstall node; 
# or `brew uninstall --force node` which removes all versions
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;

安装:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules' # <--- add this ~/.bashrc

您可以运行brew info node有关节点安装的更多详细信息。


考虑使用NVM代替brew

NVM(节点版本管理器)是用于管理节点的多个版本的便携式解决方案

https://github.com/nvm-sh/nvm

> nvm uninstall v4.1.0
> nvm install v8.1.2
> nvm use v8.1.2
> nvm list
         v4.2.0
         v5.8.0
        v6.11.0
->       v8.1.2
         system

您可以将其与AVN一起使用,以在具有不同节点依赖关系的不同项目之间跳转时自动切换版本。


2
如何设置环境变量,以便在安装后可以使用node和npm?
Maxim V. Pavlov

13
您可能需要运行带有--force标志的brew以确保删除了所有版本的节点: $ brew uninstall --force node
magikMaker 2015年

-bash: /usr/local/bin/npm: No such file or directory我现在能做什么?
ValRob '18年

5
>“考虑使用NVM代替brew”;具有讽刺意味的是,您可以通过 brew 安装NVM !很好的提示,谢谢。
HankCa

2
使用NVM有所帮助。
coderpc

186

我知道这篇文章有些过时了,但是只想分享在删除Node.js时在Terminal中对我有用的命令。

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

更新: 23 SEP 2016


如果您担心运行这些命令...

感谢jguixthis quick tutorial

首先,创建一个中间文件:

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom >> ~/filelist.txt

手动查看您的文件(位于您的Home文件夹中)

 ~/filelist.txt

然后删除文件:

cat ~/filelist.txt | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

适用于10.10.5及以上

谢谢 Lenar Hoyt

要点评论来源: gistcomment-1572198

原始要点: TonyMtz/d75101d9bdf764c890ef

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

15
哇,这太可怕了。至少第一个“ rm”不是“ rm -rf”,如果sbom上有空白行,它将删除所有/ usr / local。在进行繁重的操作之前,请仔细检查sbom的输出以及所有这些dirs的来源,并确保您确切知道要删除的内容。
Don Hatch

16
我应该补充一下...如果您具有良好的自我保护本能,那么根本很难键入或复制粘贴以“ sudo rm -rf /”开头的第二个命令。打喷嚏,或者猫跳到键盘上,您已经破坏了文件系统。
唐·哈奇

2
这是org.nodejs.node.pkg.bom不是org.nodejs.pkg.bom
Lenar Hoyt

1
@DonHatch复制不带第一个字母的行,使其开始,udo..然后s在运行之前添加前缀。
youurayy

1
lsbom命令输出相对路径,因此脚本试图删除看起来像的路径/usr/local/./node/yada。要删除./前缀,我使用了cut过滤器: lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | cut -c 3- | while read f; do sudo rm /usr/local/${f}; done
timiscoding

142

在Mavericks上,我从node pkg(从nodejs站点)安装它,然后将其卸载,因此可以使用brew重新安装。我只在终端中运行4个命令:

  1. sudo rm -rf /usr/local/lib/node_modules/npm/
  2. brew uninstall node
  3. brew doctor
  4. brew cleanup --prune-prefix

如果仍然有节点安装,请重复步骤2。一切正常之后,我将使用 brew install node


50
1个工作,但2个失败。我收到“没有这样的桶:usr / local / Cellar / node”
PositiveGuy

是的,如果您正在运行小牛
Dicer

1
我尝试了它,但再次收到相同的错误错误:该brew link步骤未成功完成
Chandni

谢谢,非常完美,除了我必须添加--force来进行brew卸载
Medhi,

1
仅供参考:在撰写本文时–->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Mike S.

33
  1. 第一:

    lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done
    
    sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
  2. 回顾一下,完全卸载node + npm的最佳方法(我发现)是执行以下操作:

    转到/usr/local/lib并删除任何节点和node_modules

    cd /usr/local/lib
    
    sudo rm -rf node*
  3. 转到/usr/local/include并删除任何node和node_modules目录

    cd /usr/local/include
    
    sudo rm -rf node*
  4. 如果您使用进行安装brew install node,则brew uninstall node在终端中运行

    brew uninstall node
  5. 检查您的主目录中是否有“本地”或“ lib”或“包含”文件夹,并从中删除任何“节点”或“ node_modules”

    转到/ usr / local / bin并删除任何节点可执行文件

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
  6. 您可能还需要执行其他说明:

    sudo rm -rf /usr/local/share/man/man1/node.1
    
    sudo rm -rf /usr/local/lib/dtrace/node.d
    
    sudo rm -rf ~/.npm

资料来源:tonyMtz


7
删除node*不是进行操作的特别安全的方法。可能还有其他带有该前缀的二进制文件。
Lenar Hoyt

2
太好了,终于在三天后,时不时出现npm问题,完全删除并在我的Mac上使用brew重新安装,效果非常好。
阿米特·布拉沃

当第一条命令被解雇时,can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.请帮助
Ahtesham Shah

即使在Mac 10.13.5上执行了这些步骤之后,仍然可以看到npm和node可能出了什么问题?
vikramvi

25

将节点降级到0.10.36

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n 0.10.36

将节点升级到稳定v

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n stable

我只是这样做,奇怪的是,它把npm从6.4.1降级到6.2.0。
Capn Sparrow

22

我不确定这是因为我有一个旧版本(4.4.5),还是因为我使用了官方安装程序,但是其他答案中引用的大多数文件在我的系统上不存在。我只需要删除以下内容:

~/.node-gyp
~/.node_repl_history
/usr/local/bin/node
/usr/local/bin/npm
/usr/local/include/node
/usr/local/lib/dtrace/node.d
/usr/local/lib/node_modules
/usr/local/share/doc/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp

我决定保留,~/.npm因为我打算用Homebrew重新安装Node。


这个答案是在2012年提出的,因此我确定它具有一定的继承性。现在,如果出现新的答案,我会在检查它们是否有效后对其进行投票。
Dominic Tancredi'2

15

我已经总结了现有的答案,并确保Node js 与NPM一起被完全擦除

  1. brew uninstall node
  2. which node
  3. sudo rm -rf /usr/local/bin/node
  4. sudo rm -rf /usr/local/lib/node_modules/npm/
  5. brew doctor
  6. brew cleanup --prune-prefix

复制到终端的行:

brew uninstall node;
which node;
sudo rm -rf /usr/local/bin/node;
sudo rm -rf /usr/local/lib/node_modules/npm/;
brew doctor;
brew cleanup --prune-prefix;

我遵循了这些步骤,而且似乎奏效了。我仍然有目录在我的根文件夹一样.node-gyp/.npm/.npm-global/,和.nvm/。如果计划重新安装节点,可以删除它们还是保留它们?
WaterTrash

10
  • 从/ usr / local / lib删除node和/或node_modules

          ex code:
          cd /usr/local/lib
          sudo rm -rf node
          sudo rm -rf node_modules
  • 从/ usr / local / include删除node和/或node_modules

  • 从/ usr / local / bin删除node,node-debug和node-gyp
  • 从主目录中删除.npmrc(这些是您的npm设置,如果您打算立即重新安装Node,请不要删除此设置)
  • 从主目录中删除.npm
  • 从主目录删除.node-gyp
  • 从主目录中删除.node_repl_history
  • 从/ usr / local / share / man / man1 /删除node *
  • 从/ usr / local / share / man / man1 /删除npm *
  • 从/ usr / local / lib / dtrace /中删除node.d
  • 从/ usr / local / opt / local / bin /中删除节点
  • 从/ usr / local / opt / local / include /中删除节点
  • 从/ usr / local / opt / local / lib /中删除node_modules
  • 从/ usr / local / share / doc /删除节点
  • 从/ usr / local / share / systemtap / tapset /中删除node.stp

我也不得不删除node@6/usr/local/opt/
回声


8

brew uninstall node

我必须知道哪个节点

which node

然后删除

rm -rf /usr/local/bin/node

7

如果您已经安装了nvm,请执行以下命令

  • nvm deactivate -这将从$ PATH中删除/.nvm/*/bin
  • nvm list -列出系统中安装的节点的所有版本
  • nvm uninstall <version> 您可以指定要卸载的所有版本。

nvm使用nvm 而不是来安装节点并使用来卸载总是一件好事brew

这个解决方案对我有用。

附加命令

  • which node了解系统中安装的节点的路径。您可以rm该目录来手动卸载节点。然后,您可能需要相应地调整PATH文件。

6

在扩展Dominic Tancredi的出色答案后,我将其分解为bash包和独立脚本。如果您已经在使用名为bpkg的“ Back Package Manager” ,则可以通过运行以下命令来安装脚本:

bpkg install -g brock/node-reinstall

或者,您可以在brock / node-reinstall上查看Github上的脚本。该脚本允许您使用nvm或nave重新安装节点,并将节点版本指定为默认版本。


1
我将要发布此消息,并看到作者本人也为该问题发布了最佳答案:一次使用node-reinstall,您将永远不会回头。让我踏上第一步,为进一步的发展做好准备!为此@brockangelo喝彩!
华莱士·西德瑞(WallaceSidhrée),2015年

3
警告..... node-reinstall脚本包含以下行: sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*} 因此,如果您碰巧在您的目录中$HOME(如我自己)单独拥有该名称的目录,那么它将变得很混乱!
terrycojones


5

在Mac上卸载Node.js时遇到问题。npm即使删除了所有这些内容,我仍然有一些奇怪的行为,即使它们仍然如此。

这是因为我用macport完成了旧安装。因此,您还必须使用port卸载它:

sudo port uninstall nodejs

它可能安装了许多不同版本的Node.js,因此(一一卸载)它们。


1
这正是我发生的事情:-)谢谢您的附录答复。好吧,我开始有多个版本的Cordova,一个npm无法删除一个Cordova,反之亦然。
peter_the_oak

5

也许你需要

hash -r 

它有助于解决符号链接问题

$ node -v
$ bash: /opt/local/bin/node: No such file or directory


4

最好的方法是下载安装程序包:在Mac上为.pkg。最好使用最新的稳定版本。

这里是链接:Node.js

该软件包最终将覆盖以前的版本,并相应地设置环境变量。只需运行安装程序,然后单击几下即可完成。


3

我已经从从git存储库下载的源安装了Node.js。我安装了:

./configure
$ make
$ sudo make install

因为make文件支持它,所以我可以这样做:

$ sudo make uninstall

如何并行运行?说我要运行2个版本?

3

作为解释通过自制程序进行清理和安装的答案的补充,我发现自制程序本身提供了符号链接冲突的清晰指示。

不幸的是,它在遇到它们时一个接一个地提供了这些功能,因此有点费力,但它似乎确实找到了所有冲突,这是我可以使用自制软件进行全新安装的唯一方法。

本质上,该过程是:

  1. 使用自制程序卸载节点
  2. 清洁自制
  3. 使用自制软件安装节点并注意所有标记的冲突文件
  4. 删除标志冲突文件(如果是“节点”目录,则删除整个目录)
  5. 转到第1步,直到完成全新安装

图解地

这是我安装最后步骤的屏幕输出-您可以看到它导致全新安装(最终...):

computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/share/systemtap/tapset/node.stp'
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d
already exists. You may want to remove it:
  rm '/usr/local/lib/dtrace/node.d'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/lib/dtrace/node.d'
computer1:DevResources user1$ 
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ node -v
v13.1.0

2

首先,在安装新的节点版本后,需要停用节点:(mac)。

nvm deactivate

这已从$ PATH中删除/Users/user_name/.nvm/*/bin

在该节点更新后

node --version
v10.9.0

1

这为我修复了此问题在Mac OS X上为Homebrew用户修复npm。而且它不需要太多步骤。

如果您不关心原因,请转到解决方案部分。

为方便起见,以下是相关部分:

此解决方案解决了由于尝试运行而导致的错误npm update npm -g。完成后,您也无需使用sudo全局安装npm模块。

在开始之前,请记下所有全局安装的npm软件包。这些说明将使您删除所有这些软件包。完成后,您需要重新安装它们。

运行以下命令以删除所有现有的全局npm模块,卸载节点和npm,使用正确的默认值重新安装节点,配置要安装的全局npm模块的位置,然后将npm作为其自身的组件安装。

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

此时应正确安装Node和npm。最后一步是添加~/.npm-packages/bin到您的PATHnpm和全局npm包中。为此,请将以下行添加到您的~/.bash_profile

export PATH="$HOME/.npm-packages/bin:$PATH"

现在,您可以重新安装任何所需的全局npm软件包,而不会出现任何问题。


4
在堆栈溢出时,不鼓励仅链接的答案。
Andrew Grimm

@AndrewGrimm很有道理,我复制了相关部分。
pcatre

1
输入以下命令后,出现以下错误:curl -L npmjs.com/install.sh | sh .... npm ERR!可以在以下位置找到该运行的完整日志:npm ERR!/Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm错误!代码E404 npm ERR!找不到404:1.535s @最新npm错误!可以在以下位置找到该运行的完整日志:npm ERR!/Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log它失败
邻省艾哈迈德

1

就我而言,其他答案均无效,因为我之前已降级为node8。因此,以下不是我做的,而是为我工作的:

which node

哪个回来了 /usr/local/bin/node@8而不是/usr/local/bin/node

所以我执行了这个命令:

brew uninstall node@8

它可以正常工作,然后从官方站点下载最新的pkg并安装。之后,我必须关闭终端,然后再次开始以访问新版本


1

如果您无法找到节点,请运行whereis nodewhereis npm然后whereis nvm根据需要删除列出的目录。

您还需要完全关闭终端,然后重新打开以使更改生效。


0

@ lfender6445 答案对我来说很好卸载

现在要重新安装,我在安装最新版本而不是最稳定版本时遇到问题,因此要安装特定的节点版本,您应该执行以下操作:

brew install node@10 // 10 is the version I want
brew link node@10

0

Docker-替代方法

Docker是一种超高速虚拟机,可用于运行诸如node之类的工具(而不是直接在mac-os上安装它们)。这样做的优点如下

  • 所有的东西(“ milions”节点文件)都安装在docker image / container内(它们封装在少数内部docker文件中)

  • 您可以将包含项目的mac目录映射到docker容器并有权访问节点-但在docker之外,mac-os系统甚至不知道已安装该节点。因此,您将获得一种带有可用节点命令的“虚拟”控制台,该命令可以在真实文件上运行

  • 您可以通过找到它docker ps并杀死它来轻松杀死节点docker rm -f name_or_num

  • 您可以通过一个命令轻松卸载docker image / containers docker rmi ...并获得可用空间-然后通过运行脚本再次安装它(如下)

  • 您的节点封装在docker内部,无权访问整个系统-仅访问您映射到该文件夹​​的文件夹

  • 您可以运行节点服务并将其端口轻松映射到mac端口,并可以从Web浏览器访问它

  • 您可以同时运行多个节点版本

  • 以类似的方式,您可以安装其他工具,例如(在多个版本中同时使用):php,数据库,redis等。-在docker内部,无需与mac-os进行任何交互(根本不会注意到此类软件)。例如,您可以同时运行具有不同版本的3个mysql数据库和具有不同php版本的3个php应用程序...-因此您可以拥有许多工具,但系统干净

  • 团队合作:可以轻松地将这样的环境克隆到其他机器(甚至到Windows / linux系统-进行一些修改),并提供相同的docker级环境-因此您可以轻松地设置和重用脚本/ dockerfile,并为新团队成员以非常快的方式(他只需要安装docker并创建类似的文件夹结构并获取脚本副本-多数民众赞成)。我以这种方式与我的团队一起工作了2年-我们非常高兴

指令

  • 使用例如以下说明安装docker

  • 准备工作的“特殊”目录,例如我的目录是/Users/kamil/work(我将进一步使用此目录-但它可以是任意目录)-该目录将是Docker容器与您的mac文件ststem之间的“接口”。在此目录中创建以下目录结构:

    /Users/kamil/work/code -在这里,您将项目放入代码

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data -在这里,我们映射容器输出的数据,例如日志(如果有人驱逐db等,则映射数据库文件)。

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd -在这里我们放置了Docker节点脚本

  • 在内部tools创建文件中.env,该文件将在一处包含其他脚本中使用的全局路径

  • 内部目录../node-cmd创建dockerfile具有以下内容的文件

  • innside dir ../node-cmd创建run-container具有以下内容的文件(此文件应可执行,例如通过chmod +x run-container)-(注意我们如何将端口“ s”和目录从外部“ world”映射到内部docker文件系统)

  • 好的,现在您可以添加一些项目,例如,work/code/myProject并在文件“ run-cmd”之后添加到该项目(必须是可执行文件)

  • 然后,如果您在脚本之上运行(双击),您将在项目目录中看到带有可用节点命令的控制台,例如 npm install

  • 在后台运行项目(例如,一些服务),例如运行网络服务器angular-cli应用程序,您可以使用以下脚本(命名为run-front-必须是可执行文件)-(您还必须编辑/etc/hosts文件以添加适当的域)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.