有没有人用 node 经历过这样的事情:
我正在运行Angular,我的 Windows 崩溃并重新启动,现在当我尝试时,ng serve我得到:
Error: listen EACCES: permission denied 127.0.0.1:4200
at Server.setupListenHandle [as _listen2] (net.js:1253:19)
at listenInCluster (net.js:1318:12)
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1451:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:61:10)
Run Code Online (Sandbox Code Playgroud)
我也试过 ng serve --port 4201
结果一样。
注意:在Windows重新启动之前,我在WSL. 之后,我尝试WSL和Powershell。
更新:它甚至发生在一个新项目中。
我已经通过执行全局安装了 fkill npm i -g fkill。当我这样做时我可以看到它已安装npm list。当我运行时,它仅显示全局安装的 fkill npm list -g --depth=0。但是,当我运行时,fkill我收到“找不到命令”。
接下来我运行“npm get prefix”并得到“/home/alex/.node_modules”。这是我的路径:
/home/alex/.node_modules/bin:/home/alex/.npm-global/bin:/home/alex/.node_modules/bin:/home/alex/.node_modules/lib/node_modules:/home/alex/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/opt/cuda/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin
Run Code Online (Sandbox Code Playgroud)
这一切都是在我尝试使用 pacman 运行系统更新并遇到节点冲突之后开始的,因此我卸载了节点并运行了更新,然后重新安装了节点。
有任何想法吗?
这是在 Manjaro 上。
当我这样做npm login(别名npm adduser)时,我总是收到提示输入我的电子邮件地址。
Username: ...
Password: ...
Email: (this IS public) ...
Run Code Online (Sandbox Code Playgroud)
这是令人讨厌的。我已经完成npm config -g set email ...并确认它坚持。我已经确认我的 git 配置user.email准确无误,以防 npm 尝试从那里拉。
有什么办法可以抑制那个提示吗?我正在登录 jFrog,但我认为他们只是在模仿 npm 注册表行为。
我想npm run在 Visual Studio 代码中运行两个并发命令,每个命令都在 vscode 中的一个单独的终端选项卡中。我尝试这样做:
start 'command a' && start 'command b'
Run Code Online (Sandbox Code Playgroud)
但这只是在两个不同的 cmd 窗口中打开它们我希望它们在 vscode 中的新终端选项卡中打开 有没有办法做到这一点?
如果重要,我正在使用 Windows 10 并从 npm 脚本运行它
首先,我安装 npm
sudo apt-get install -y npm
Run Code Online (Sandbox Code Playgroud)
其中安装了 npm 版本 3.5.2。然后我尝试将其更新到最新版本,但失败了。无法为此找到合适的解决方案。
sudo npm install npm@latest -g
? ?????????????????????????????????????????????????????????????????????????????
WARN engine npm@7.5.2: wanted: {"node":">=10"} (current: {"node":"8.10.0","npm":"3.5.2"})
WARN engine npm@7.5.2: wanted: {"node":">=10"} (current: {"node":"8.10.0","npm":/usr/local/lib
??? (empty)
npm ERR! Linux 4.15.0-135-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "npm@latest" "-g"
npm ERR! node v8.10.0
npm ERR! npm v3.5.2
npm ERR! path /usr/local/lib/node_modules/.staging/@npmcli/ci-detect-c7bf9552
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename …Run Code Online (Sandbox Code Playgroud) 我有点羞愧,我自己找不到一个好的解决方案,但可惜。
使用 npm,我们通常有一个带有段package.json的文件scripts,用于存储我们希望工具链定期执行的任务,例如:
"scripts": {
"build": "webpack --env production",
"start": "webpack-dev-server"
}
Run Code Online (Sandbox Code Playgroud)
现在我们可能已经更新了工具链的一部分 - 在这个示例中是 webpack - 突然我们收到一条如下消息:
(node:10868) [DEP_WEBPACK_DEPRECATION_ARRAY_TO_SET] DeprecationWarning: Compilation.modules was changed from Array to Set (using Array method 'reduce' is deprecated)
(Use `node --trace-deprecation ...` to show where the warning was created)
Run Code Online (Sandbox Code Playgroud)
按原样,它对于诊断和解决问题完全没有用。某些构建脚本中的某些地方是错误的。... 耶!
至少在 webpack 及其插件的情况下,我们可以获得在 CLI 上调用的非常有用的跟踪输出:
node --trace-deprecation node_modules/webpack/bin/webpack.js --env production
Run Code Online (Sandbox Code Playgroud)
相当麻烦的一行,不是吗?我们确实想避免这种情况的原因有很多。排名不分先后:
package.jsonCLI 复制到(例如,不同的环境激活不同的插件 - 这不是一般用例,因此很容易被忽视,即使程序员已经有了处理弃用的想法)
.js我们也不能复制整个脚本主体所以...
我想知道的是如何搜索特定包的所有可用版本。
我使用 Node.js、npm、TypeScript、JavaScript、Express JS、React TSX/JSX、Mocha/JEST 和许多其他东西为客户开发软件。
上面提到的所有软件都是通过“Npm”获得的,其中大部分运行在 Node.js 运行时环境中。
许多客户都坚持使用特定版本的 Node.js、TypeScript、Npm 和/或 Npm 包。这使得我必须安装最新版本的 Node.js、LTS 版本的 Node.js 以及所有尚未达到 EoL 的版本。
我习惯启动Ubuntu,显然我会使用Apt包管理器来搜索和下载包。不过,“Ubuntu”在apt某些软件包方面存在一些问题,特别是在尝试更改版本时。不幸的是,Node.js 是一款很难使用“Ubuntu”和apt. 这个难题让我开始习惯手动安装 Node、Npm,并手动将全局 npm bin 目录添加到我的路径和/或软链接它们。
一年多前,我出于与 Node.js 无关的其他原因切换到 Fedora Workstation 35(目前我刚刚升级到 37 预发布版本)。由于 Ubuntu 的问题,我习惯了手动安装 Npm 和 Node.js,并且在启动到 Fedora 时继续这种做法。我决定看看是否可以使用 DNF 安装不同版本的节点,但我遇到的问题是,当我使用 DNF 搜索时,它只返回包的名称,通知我它可供下载,但它不提及它是什么版本,以及是否有其他版本可用。
dnf所有可用的 Node.js 包和 Npm 包?