nodejs 使用记录

基本配置

不论是ubuntu还是windows10,对于非安装版的nodejs,在下载后所做的配置:

  • 设置环境变量:NODE_ROOT为nodejs根目录,NODE_PATH为其中node_modules目录(npm等安装的内容在其中)
    • 对于ubuntu/linux:将$NODE_ROOT/bin加入PATH中,NODE_PATH$NODE_ROOT/lib/node_modules
    • 对于windows:应用程序就在根,%NODE_ROOT%加入PATH即可,而NODE_PATH%NODE_ROOT%\node_modules
  • 换源:npm config set registry <镜像源>
  • 新的包管理器yarn:npm install -g yarn
    • 换源,似乎和npm的一样,语法也一样
  • 命令行走代理:用的应该是小写的http_proxy和https_proxy,注意变量中加上协议,否则请求出错

Windows中的Powershell能用npm,但是不能用yarn(因为不允许运行yarn.ps1),cmd倒是可以。
Get-ExecutionPolicy会发现策略是Restricted,在管理员权限下用Set-ExecutionPolicy将其改为RemoteSigned

https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.4

# 管理员权限下
Set-ExecutionPolicy RemoteSigned

# windows命令行设代理,方便复制
## cmd
set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890

## powershell
$env:http_proxy="http://127.0.0.1:7890"
$env:https_proxy="http://127.0.0.1:7890"

# yarn
官方:https://registry.yarnpkg.com

# npm
官方:https://registry.npmjs.org

ubuntu22 安装node16报错 [old deprecate]

情况

用的阿里云ECS,本地apt安装只能到12,所以采取网上说法

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

然后遇到报错

Unpacking nodejs (16.19.0-deb-1nodesource1) ...
dpkg: error processing archive /var/cache/apt/archives/nodejs_16.19.0-deb-1nodesource1_amd64.deb (--unpack):
 trying to overwrite '/usr/include/node/common.gypi', which is also in package libnode-dev 12.22.9~dfsg-1ubuntu3
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

操作记录

先找到这篇,按照步骤尝试发现无效;

然后找到另外一篇,应该就是用--force-overwrite强制那个nodejs_16.19.0-deb-1nodesource1_amd64.deb包覆写,但又看了看好像说操作挺暴力,自己这儿一直是root权限就先没试。


再按照第一篇的,先删了/etc/apt/sources.list.dnodesource.list,然后sudo apt --fix-broken install修复了一下install;就直接apt install nodejs了,结果直接装回了node12。

估摸就是curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -这句添加了nodesource.list,然后又和本地什么包有冲突。


想了想反正就是node12的包没删干净(apt这种包管理原理还没搞清楚),就重新尝试删除。这回是apt purge nodejs + apt autoremove (网上关于删除命令有很多讲究和介绍,没看太懂,之前没用apt autoremove),这回看命令行输出感觉删了很多东西。然后再重复之前的安装操作(不过参数加了-fs,也不懂啥意思和之前有什么区别)

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

就意外装好了。

posted @ 2023-01-16 13:14  Xlucidator  阅读(610)  评论(0编辑  收藏  举报