我已经升级到最新的稳定后node和npm,我试过npm install moment --save.它package.json使用^前缀保存条目.以前,它是一个~前缀.
npm?~和之间有什么区别^?如何找到已安装的node.js/npm 包的版本?
这将打印npm本身的版本:
npm -v <package-name>
Run Code Online (Sandbox Code Playgroud)
这打印出一个神秘的错误:
npm version <package-name>
Run Code Online (Sandbox Code Playgroud)
这将在注册表上打印包版本(即可用的最新版本):
npm view <package-name> version
Run Code Online (Sandbox Code Playgroud)
我如何获得已安装的版本?
本文档很难回答我的问题.我不明白这些解释.有人可以用简单的话说吗?也许有例子,如果难以选择简单的单词?
编辑还补充说peerDependencies,这是密切相关的,可能会引起混淆.
我从另一个项目中复制了package.json,现在想要将所有依赖项都添加到它们的最新版本,因为这是一个新项目,如果它破坏了我不介意修复它.
最简单的方法是什么?
我现在知道的最好的方法是运行npm info express version然后为每个人手动更新package.json.肯定有更好的办法.
{
"name": "myproject",
"description": "my node project",
"version": "1.0.0",
"engines": {
"node": "0.8.4",
"npm": "1.1.65"
},
"private": true,
"dependencies": {
"express": "~3.0.3", // how do I get these bumped to latest?
"mongodb": "~1.2.5",
"underscore": "~1.4.2",
"rjs": "~2.9.0",
"jade": "~0.27.2",
"async": "~0.1.22"
}
}
Run Code Online (Sandbox Code Playgroud)
我现在是npm-check-updates的合作者,这是解决这个问题的一个很好的解决方案.
我正在尝试总结我对最流行的JavaScript包管理器,捆绑包和任务运行器的了解.如果我错了,请纠正我:
npm&bower是包管理员.他们只是下载依赖项,不知道如何自己构建项目.他们知道的是在获取所有依赖项之后调用webpack/ gulp/ grunt.bower就像npm,但是构建了扁平的依赖树(不像npm递归那样).含义npm获取每个依赖项的依赖项(可能会获取相同的几次),同时bower期望您手动包含子依赖项.有时bower并npm分别用于前端和后端(因为每兆字节在前端可能很重要).grunt并且gulp是任务运行者自动化所有可以自动化的东西(即编译CSS/Sass,优化图像,制作捆绑并缩小/转换它).gruntvs. gulp(就像mavenvs. gradle或配置与代码).Grunt基于配置单独的独立任务,每个任务打开/处理/关闭文件.Gulp需要的代码量较少,并且基于节点流,这使得它可以构建管道链(无需重新打开同一个文件)并使其更快.webpack(webpack-dev-server) - 对我来说,这是一个热门重新加载更改的任务运行器,可以让你忘记所有JS/CSS观察者.npm/ bower+ plugins可以替换任务运行器.他们的能力经常交叉,所以如果你需要使用gulp/ gruntover npm+插件,会有不同的含义.但是,跑步者的任务是复杂的任务肯定更好(例如,"每个建设创建捆绑,从ES6 transpile到ES5,在所有浏览器模拟器中运行它,使屏幕截图和部署通过FTP收存箱").browserify允许为浏览器打包节点模块.browserifyvs node的require实际上是AMD vs CommonJS.问题:
webpack&webpack-dev-server?官方文档说它是一个模块捆绑器,但对我来说它只是一个任务运行器.有什么不同?browserify?我们不能对node/ES6导入做同样的事情吗? gulp …我看到了一些教程,命令是:
npm install --save
Run Code Online (Sandbox Code Playgroud)
该--save选项意味着什么?
无法在Google上找到答案.
bower和之间的根本区别是npm什么?只想要简单明了的东西.我见过我的一些同事在他们的项目中使用bower和npm互换.
我刚刚安装Node.js和npm(用于其他模块).
如何将Node.js和我正在使用的模块更新到最新版本?
可以npm这样做,还是我必须删除并重新安装Node.js和npm才能获得下一个版本?
我按照本npm节中的步骤操作.
我刚刚通过nodejs.org上的软件包安装了node和npm,每当我尝试使用npm搜索或安装某些内容时,它会抛出以下错误,除非我sudo命令.我觉得这是一个权限问题?我已经是管理员了.
npm ERR! Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR! { [Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/Users/chietala/.npm/-/all/.cache.json' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 12.2.0
npm ERR! command "node" "/usr/local/bin/npm" "search" "bower"
npm ERR! cwd /Users/chietala
npm ERR! node -v v0.10.4
npm ERR! npm -v 1.2.18
npm ERR! path /Users/chietala/.npm/-/all/.cache.json
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack …Run Code Online (Sandbox Code Playgroud) 在我安装brew节点和NVM安装v0.6.19之后,我的节点版本总是v0.6.1-pre.
我的节点版本是:
node -v
v0.6.1-pre
Run Code Online (Sandbox Code Playgroud)
NVM说这个(在我第一次在一个bash终端中安装一个版本的节点之后):
nvm ls
v0.6.19
current: v0.6.19
Run Code Online (Sandbox Code Playgroud)
但是当我重新启动bash时,这就是我所看到的:
nvm ls
v0.6.19
current: v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)
Run Code Online (Sandbox Code Playgroud)
那么这个幻像节点0.6.1-pre版本在哪里?我该如何摆脱它?我正在尝试通过NPM安装库,以便我可以处理项目.
我尝试使用BREW在NVM之前更新,使用"brew update"和"brew install node".我已经尝试删除/ usr/local/include中的"node"目录以及"/ usr/local/lib"中的"node"和"node_modules".我已经尝试卸载npm并按照这些说明重新安装它.
所有这一切都是因为我试图更新旧版本的节点以安装"zipstream"库.现在我的用户目录中有文件夹,并且节点版本STILL不是最新的,即使NVM说它使用的是0.6.19.
理想情况下,我想卸载nodejs,npm和nvm,然后在我的系统上从头开始重新安装整个东西.
npm ×10
node.js ×8
bower ×2
javascript ×2
gruntjs ×1
gulp ×1
node-modules ×1
npm-update ×1
package ×1
package.json ×1
permissions ×1
sudo ×1
unix ×1
webpack ×1