标签分类 技术文章:
当前位置:首页 > node.js技术文章 > NodeJs安装npm包一直失败的解决方法

解决NodeJs安装npm包一直失败的方法步骤

  • 发布时间:
  • 作者:码农之家原创
  • 点击:142

这篇文章主要知识点是关于NodeJs、安装npm包、失败、浅谈node模块与npm包管理工具 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

深入浅出Node.js
  • 类型:Node.js大小:19.3 MB格式:PDF出版:人民邮电出版社作者:朴灵
立即下载

更多Node.js相关的学习资源可以参阅 Node.js电子书程序设计电子书 等栏目。

NodeJs安装npm包一直失败的解决方法

最近在学React,在gitHub上下载一个项目下来,安装node.js后发现用npm install就一直报错,不知道怎么解决,查了很多资料 都没有用。

在windows下 cmd到命令窗口 (最好是管理员的身份运行),结果就如下图01

NodeJs安装npm包一直失败的解决方法

才开始学 不清楚什么错误,感觉和npm无关,查资料说是更改npm的安装源

可以使用npm config list 查看当前配置的状况,说可能是某些包被国内墙了 需要操作

npm config set strict-ssl false       //关闭npm的https 
npm config set registry "http://registry.npmjs.org/"    //重新设置npm的获取地址 

或者直接编辑c盘下的.npmrc文件,将registry的值修改为:

registry = http://registry.npmjs.org/

但是发现都没有什么用

再者,说是用淘宝镜像 ,我也试了 ,没什么用 

npm config set registry https://registry.npm.taobao.org

最后 终于找到了用代理 是代理的问题,直接

npm config set proxy http://address:8080     注意这里的address我开始不知道是什么地址 就直接写的本电脑的IP地址 结果就可以了

主要是参考http://stackoverflow.com/questions/23193614/npm-err-network-getaddrinfo-enotfound

另外,清除npm的代理命令如下:

npm config delete http-proxy
npm config delete https-proxy

以上只代表个人的情况。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持码农之家!

浅谈node模块与npm包管理工具

在Node.js中,以模块为单位划分所有的功能,并且提供了一个完整的模块加载机制,所以我们可以将应用程序划分为各个不同的部分,并且对这些部分进行很好的协同管理。通过将各种可重用代码编写在各种模块中的方法,可以大大减少应用程序的代码量,提高应用程序的开发效率以及应用程序代码的可读性。通过模块加载机制,可以将各种第三方模块引入到我们的应用程序中。

在node.js中,提供npm包管理工具,用于从第三方网站上下载各种Node.js包。

一、模块

1.1 加载模块

在Node.js中,以模块为单位划分所有的功能,一个Node.js应用程序由大量的模块组成,每一个模块都是一个JavaScript文件,在加载node.js中预先定义的核心模块,我们只需要require('模块名'),例如require('http'),在将第三方类库引入到我们的应用程序时,需要指定该文件的完整路径及文件名,例如 require('./script/foo.js')

1.2 访问模块

1.2.1使用exports对象访问

在一个模块文件中定义变量、函数或对象只在该模块内有效,当你需要从外部模块引用这些变量、函数或对象时,需要再改模块内,例如,建一个testModule.js,代码如下:

var testVar = "Can you see me now ? ";
var funName = function(name){
  console.log('My name is' + name);
}
exports.testVar = testVar ;
exports.funName = funName ;

那么我们想在http.js中使用这些变量、函数或对象,可在http.js中书写如下代码:

var test1 = require('./testModule.js');
// 通过test1访问testModule.js模块内的testVar变量 和funName函数
console.log(test1.testVar)
test1.funName('Luckfine')

node 运行下这个http.js node http.js

运行结果如下

浅谈node模块与npm包管理工具

1.2.2使用module.exports对象访问

当你需要从外部模块引用这些变量、函数或对象时,使用exports对象,也可以使用module.exports,但是需要将模块定义一个类时,只能用module.exports。

例如定义一个testModule类,在testModule.js中如下代码:

var _name,_age
var name = '',age = 0;
var foo = function(name,age){
  _name = name ; 
  _age = age ;
}
// 获取私有变量_name的变量只
foo.prototype.GetName = function(name){
  return _name;
};
// 设置私有变量_name的变量值
foo.prototype.SetName = function(name){
  _name = name;
}
// 获取私有变量_age的变量只
foo.prototype.GetAge = function(age){
  return _age;
};
// 设置私有变量_name的变量值
foo.prototype.SetAge = function(age){
  _age = age;
}
foo.prototype.name = name;
foo.prototype.age = age;
module.exports = foo;

那么我们想在http.js中使用这个类的变量、函数或对象,可在http.js中书写如下代码:

var foo = require('./testModule.js');
var myFoo = new foo('Luckfine',18);

console.log('获取修改前的私有变量值')
console.log(myFoo.GetName());
console.log(myFoo.GetAge());

console.log('修改私有变量');
myFoo.SetName('Baby');
myFoo.SetAge(16);

console.log('获取修改后的私有变量值')
console.log(myFoo.GetName());
console.log(myFoo.GetAge());


console.log('获取修改前的公有变量值')
console.log(myFoo.name);
console.log(myFoo.age);

console.log('修改公有变量')
myFoo.name = "Tom";
myFoo.age = 20;

console.log('获取修改后的公有变量值')
console.log(myFoo.name);
console.log(myFoo.age);

然后在iTerm中运行node http.js命令,运行结果如下所示

浅谈node模块与npm包管理工具

总结以上:

也就是说,js文件和js文件之间有两种合作的模式:
1) 某一个js文件中,提供了函数,供别人使用。 只需要暴露函数就行了; exports.msg=msg;
2) 某一个js文件,描述了一个类。 module.exports = People;

二、npm包管理

npm是跟随Node.js一起的包管理工具,能解决Node.js代码部署上的很多问题,当我们使用npm去安装一些第三方库的时候,安装包会放在运行npm命令时所在的目录中的node_modules文件夹中,如果当前目录下没有node_modules,会在当前目录下生成node_modules目录,并把我们需要的第三方库放在node_modules中。

所以在安装的时候,要注意,命令提示符所在的位置。

安装第三方库的命令  npm install 模块名字, 假如我们需要安装express,那么只需要在命令行中输入npm install express

1.我们的依赖包,可能在随时更新,我们永远想保持更新,或者某持某一个版本;
2.项目越来越大的时候,给别人看的时候,没有必要再次共享我们引用的第三方模块。

所以我们可以使用package.json来管理依赖包。

在cmd中,使用npm init可以初始化一个package.json文件,用回答问题的方式生成一个新的package.json文件。

生成package.json的作用就是,如果一不小心我们丢了什么依赖,那么只要我们直接npm install就可以安装package.json中的缺失的依赖;

package.json中版本号前面有一个尖角号,表示固定版本,即固定使用我现在安装的版本;

例如我们现在新建一个文件夹

浅谈node模块与npm包管理工具

1、新建文件夹

我们现在需要安装一个第三方库express,就先进入这个文件夹,打开命令行,在此输入 npm install express'' 等命令行完成之后,我们会看到在文件夹中就新建了一个node_modules文件夹,并且把我们需要的库已经安装在文件夹中

浅谈node模块与npm包管理工具

2、安装后文件夹中内容

然后我们需要一个package.json管理我们的包,就可以在命令行中输入npm init,这时可已根据命令行的提示回答问题建立package.json

浅谈node模块与npm包管理工具

3、建立package.json

那么我们这个项目的一些依赖,版本号,描述,作者等都可以通过package.json进行相应管理。

浅谈node模块与npm包管理工具

4、包管理

我这个包管理内容比较少,那么正常情况下package.jaon都有如下内容

 浅谈node模块与npm包管理工具

浅谈node模块与npm包管理工具

浅谈node模块与npm包管理工具

浅谈node模块与npm包管理工具

三、模块对象的属性

这个作为更深入的了解。

在模块文件内部,可以访问当前模块的如下一些属性。

module.id : 表示该模块文件的绝对路径。

module.filename :属性值为当前模块的文件名

module.loaded :属性值为布尔值,当属性值为false时表示模块尚未加载完毕,反之为加载完毕。

module.parent:属性值为当前模块的父模块对象,即调用当前模块的模块对象

module.children:属性值为一个数组,其中存放了当前模块所有子模块对象,即当前模块中已加载的所有模块对象。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于Node.js的全部知识点内容总结,大家还可以在下方相关文章里找到Chrome DevTools直接调试Node、 WebSocket实现客服聊天系统、 Nodejs测试驱动知识点总结、 等nodejs文章进一步学习,感谢大家的阅读和支持。

上一篇:nodejs实现本地上传图片并预览功能实例代码

下一篇:Nodejs测试驱动知识点总结

展开 +

收起 -

学习笔记
网友NO.421542

Node.js如何优雅的封装一个实用函数的npm包的方法

为什么要封装一个实用函数的 npm 包? 当你连续写了多个 Node 应用, 都想要 console 漂亮一点, 你可能会像下面这样封装一个函数 import chalk from "chalk";function noop(msg: string): string { return msg}function log(fn: Function): (msg: string) = void { return (msg: string): void = { console.log(fn(msg)); };}export default { success: log(chalk.green), error: log(chalk.red), warn: log(chalk.yellow), info: log(chalk.cyan), log: log(noop)}; 调用方式 import log from './log'log.success("hello green message!")log.error("hello red message!")log.warn("hello yellow message!")log.info("hello cyan message!")log.log("hello normal message!") 慢慢的发现每个项目都需要这么一个 log 文件, 是的! 我们此时可以考虑把这些常用的函数封装集合到一个 npm 包里面了! 需要注意的事项有哪些 单元测试 考虑到代码量的增加以及贡献者的增加事先加入单元测试是很有必要的 测试框架 - Mocha 是一个功能丰富的Javascript测试框架,它能运行在Node.js和浏览器中,支持BDD、TDD、QUnit、Exports式的测试 断言库 - assert 是 Node 自带的 持续集成 Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。 代码层面 扩展开放, 修改关闭的设计原则 当 src 目……

网友NO.772473

Node.js中npm常用命令大全

npm是什么 NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。 npm install 安装模块 基础语法 npm install (with no args, in package dir)npm install [@scope/]namenpm install [@scope/]name@tagnpm install [@scope/]name@versionnpm install [@scope/]name@version rangenpm install tarball filenpm install tarball urlnpm install folderalias: npm icommon options: [-S|--save|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [--dry-run] 安装包,默认会安装最新的版本 复制代码 代码如下: npm install gulp 安装指定版本 复制代码 代码如下: npm install gulp@3.9.1 安装包并将信息保持到项目的package.json文件中 项目对模块的依赖可以使用下面的 3 种方法来表示(假设当前版本号是 1.1.0 ): 兼容模块新发布的补丁版本:~1.1.0、1.1.x、1.1兼容模块新发布的小版本、补丁版本:^1.1.0、1.x、1兼容模块新发布的大版本、小版本、补丁版本:*、x -S, --save 安装包信息将加入到dependencies(生产阶段的依赖) 复制代码 代码如下: npm install gulp --save 或 npm install gulp -S package.json 文件的 dependencies 字段: 复制代码 代码如下: "dependencies": { "gulp": "^3.9.1"} -D, --save-dev 安装包信息将加入到devDependencies(开发阶段的依赖),所以开发阶段一般使用它 复制代码 代码如下……

网友NO.953088

Windows 系统下设置Nodejs NPM全局路径

在开发过程中我们可能希望重新设置npm的全局路径,具体方法如下: npm config set cache "D:\nodejs\node_cache" npm config set prefix "D:\nodejs\node_global" ……

网友NO.458703

nodejs npm包管理的配置方法及常用命令介绍

1. 输入 npm config ls -l 可以查看当前的目录设置 复制代码 代码如下: ; cli configs long = true ; builtin config C:\Program Files (x86)\nodejs\node_modules\npm\npmrc prefix = "C:\\Users\\sam\\AppData\\Roaming\\npm" ; default values always-auth = false browser = "start" ca = "-----BEGIN CERTIFICATE-----\nMIIChzCCAfACCQDauvz/KHp8ejANBgkqhkiG9w0BAQUFA DCBhzELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgTAkNBMRAwDgYDVQQHEwdPYWtsYW5kMQwwCgYDVQQKEwN ucG0x\nIjAgBgNVBAsTGW5wbSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDjAMBgNVBAMTBW5w\nbUNBMRc wFQYJKoZIhvcNAQkBFghpQGl6cy5tZTAeFw0xMTA5MDUwMTQ3MTdaFw0y\nMTA5MDIwMTQ3MTdaMIGHM QswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEDAOBgNV\nBAcTB09ha2xhbmQxDDAKBgNVBAoTA25wbTE iMCAGA1UECxMZbnBtIENlcnRpZmlj\nYXRlIEF1dGhvcml0eTEOMAwGA1UEAxMFbnBtQ0ExFzAVBgkqh kiG9w0BCQEWCGlA\naXpzLm1lMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLI4tIqPpRW+ACw9G E\nOgBlJZwK5f8nnKCLK629Pv5yJpQKs3DENExAyOgDcyaF0HD0zk8zTp+ZsLaNdKOz\nGn2U181KGpr GKAXP6DU6ByOJDWmTlY6+Ad1laYT0m64fERSpHw/hjD3D+iX4aMOl\ny0HdbT5m1ZGh6SJz3ZqxavhHL QIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAC4ySDbC\nl7W1WpLmtLGEQ/yuMLUf6Jy/vr+CRp4h+UzL+IQ pCv8FfxsYE7dhf/bmWTEupBkv\nyNL18lipt2jSvR3v6oAHAReotvdjqhxddpe5Holns6EQd1/xEZ7sB 1YhQKJtvUrl\nZNufy1Jf1r0ldEGeA+0ISck7s+xSh9rQD2Op\n-----END CERTIFICATE-----" cache = "C:\\Users\\sam\\AppData\\Roaming\\npm-cache" cache-max = null cache-min = 0 color = true coverage = false depth = null description = true dev = false editor = "notepad.exe" force = false git = "git" global = false globalconfig = "C:\\……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明