我已经安装了nodenv来管理我的电脑中节点和npm的版本。因为当我尝试安装诸如angular-cli,webpack,typescript,angular2等的包时,我会收到错误
第一个问题:安装软件包时,版本节点或npm是否会产生错误?
有些软件包会说:"生成的项目具有需要Node 4.x.x和NPM 3.x.x的依赖项。"
但是他们没有提到确切的版本。通过示例节点4.1.5的版本是否会产生错误,而不是版本4.0.5?
第二个问题: 我不喜欢这些软件包需要像全局(-g)一样安装,而且我看到的问题有时在安装的全局软件包之间存在冲突。 示例错误:
npm WARN EPEERINVALID string-replace-loader@1.0.3 requires a peer of webpack@1.x.x || 2.x.x but none was installed.
PhantomJS not found on PATH
Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-macosx.zip
但是,如果两个全局包使用相同的全局包,但是有些包使用不同版本的每个包呢?
答案 0 :(得分:1)
由npm包所有者在他们的package.json中定义所有上游依赖项和一组可以很好地协同工作的工作版本...挑战是作为包所有者使你的package.json尽可能松散上游依赖关系,以便能够提取这些依赖包的较新版本,但又足够严密,以至于您发布的包仍可正常工作
通常不会导致版本不匹配调用错误......如果可能的话总是使用最新的软件包版本,这也适用于nodejs本身
当package.json提到诸如3.x.x之类的版本时,这意味着它应该适用于x.x的任何值,所以只需选择最大数字以适合模式
尽可能避免进行全局安装,除非是针对命令行可执行文件...对于代码插入的包而不是可执行的中心包
尤其如此更新 我现在能够成功安装
npm install -g angular-cli
使用最新版本的节点
node --version
v6.5.0
因此我建议您升级自己的项目代码和节点版本,以避免该固定版本失败并使用最新版本