首页 > 编程语言 >node/npm的使用

node/npm的使用

时间:2023-05-06 14:33:12浏览次数:45  
标签:node npm 4.7 模块 package 版本 使用

使用node命令

打开终端输入node,之后输入console.log()可以向控制台输出指定字符串,如下图所示:
img
如果想要运行一个脚本文件也可以将js代码编写到文件中,执行node指令也是一样的,如下图所示:
img

Node.js模块

在编写大型项目时,为了提高代码的复用,会将项目进行模块化,在node.js中,一个文件对应一个模块,导入时可以根据文件路径导入不同的模块。

exports对象

exports可以将整个模块作为一个对象进行导出。
module.exports则是将模块中的一个变量或方法进行导出。
使用moudle.exports导出可以直接使用,而使用exports导出的是对象,需要调用对象中的成员方法/变量才可以使用。

var hello = () => {
    console.log("hello world")
}

// 导出hello方法
module.exports = hello


// 导出
exports.test = () => {
    console.log("test")
}

module对象

将模块进行导入

var app = require('./hello');
// app()

// 使用exports进行导出
app.test()
// 使用moudle.exports进行导出
app()

NPM基础

npm是node js的包管理工具,类似python的pip、Java的maven,可以根据版本将指定的包依赖导入到项目中,使用npm -v 查看npm版本,如下图所示:
img

全局安装

使用全局安装的包可以在系统的任何地方中进行导入使用。

npm install -g

局部安装

使用局部安装的包只能在项目中进行使用,以本地安装的方式会将依赖写入到package.json文件中。

npm install 

保存依赖到package.json的dependencies下

npm install [moudle-name] --save

保存依赖到dev-dependencies下

npm install [moudle-name] --save-dev

dependencies是运行时的依赖,
devDependencies是开发时的依赖。

更新模块

可以使用以下命令对指定包检查是否有更新

npm outdated [moudle-name]

使用update命令来更新模块

npm update [moudle-name]

还可以将package.json的版本设置为最新版本之后npm update也是可以的

模块卸载

npm uninstall [moudle-name]

新建Node项目

  1. 新建一个项目目录并进入目录
mkdir test
cd test
  1. 使用npm init 初始化node项目,输入一些项目的基本信息
npm init
package name: (pro) test
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:                                                                                                                                                                  
keywords:                                                                                                                                                                        
author:                                                                                                                                                                          
license: (ISC)                                                                                                                                                                   
About to write to D:\web\ng\node-pro\package.json:

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this OK? (yes) yes
  1. 安装express模块
npm install express -g
  1. 导入express并创建一个简单的web服务器
// 导入express模块
var express = require('express')

var app = express()
app.get('/', (req, res) => {
    // 服务端响应信息
    res.send('hello world')
})

// 箭头7979端口
app.listen(7979)
  1. 运行node项目
node index.js
  1. 打开浏览器如下图所示
    img

Node项目结构

img
index.js用于编写我们具体的业务代码
node_modules存储项目模块依赖,在复制项目时,不要复制node_modules文件夹,否则会出现意外错误,应当复制其他项目其他文件后使用npm install 自动安装版本依赖到项目中。
package.json用于存储模块的版本信息,通过npm install可以根据package.json中的模块版本安装到项目中。
模板版本对照如下所示

  • 4.7: 完美匹配4.7版本
  • >4.7: 高于4.7版本
  • >=4.7: 高于等于4.7版本
  • <4.7: 小于4.7版本
  • <=: 小于等于4.7版本
  • ~4.7: 约等于4.7版本,可以是4.7.xxx之类的版本号
  • ^4.7: 版本区间 (4.7, 5.0)
  • 4.7.: 匹配前缀为4.7.的版本
    -
    : 任何版本号

package-lock.json: 如果版本是使用区间的话,每次使用npm install都会根据最新的版本模块安装依赖到项目中,由于开发环境和线上环境执行npm install的时间点不同,会导致环境模块依赖不同,可能会出现依赖错误的问题。
package-lock.json就是为了解决这个问题的,在package-lock.json配置了系统版本之后就会对模块中的依赖进行锁定,避免版本不一致的问题。

标签:node,npm,4.7,模块,package,版本,使用
From: https://www.cnblogs.com/lyraHeartstrings/p/17365296.html

相关文章

  • 使用Btrace查看某个线程池活跃线程大小
    某一天想查看某个应用里的hsf活跃线程数(工作线程)。第一个想到的jstack,根据jstack打出的日志分析。典型日志: 1."HSFBizProcessor-thread-6"prio=10tid=0x00002aaabdffd800nid=0x201f2.java.lang.Thread.State:RUNNABLE3.atjava.lang.Class.getEnclosing......
  • Module build failed (from ./node_modules/css-loader/dist/cjs.js): TypeError: thi
    Modulebuildfailed(from./node_modules/css-loader/dist/cjs.js):TypeError:this.getOptionsisnotafunctionModulebuildfailed(from./node_modules/css-loader/dist/cjs.js):TypeError:this.getOptionsisnotafunction 用了各种办法,没有解决问题,直接把node_m......
  • 使用gunicorn和supervisor部署flask项目
    我们自己编写的发布系统基于Python3.6开发,项目存放在自建gitlab上,地址为ssh://gitlab.xxxx/xxx/xxx.git这里先简单说下gitlab的3中发布方式:HTTP协议是最常用的方式,因为它简单易用,拉取只需要输入账号密码,但相对较慢且安全性较低。SSH协议则更加安全和方便,拉取代码速度更快,适合在......
  • Struts2----中使用ValueStack、ActionContext、ServletContext、request、session等
     声明:本文参考Struts2版本为2.3.1.2,内容仅供参考,限于笔者水平有限,难免有所疏漏,望您能友善指出。本文发表于ITEYE,谢绝转载。1.ValueStack  ValueStack在中文版的《Struts2深入浅出》一书中译作“值栈”。其本身数据结构是一个栈,使用者可以把一些对象(又称作bean)存入值栈中,然后......
  • Android开发:使用Glide动态加载圆形图片和圆角图片
    最新消息,鼎鼎大名的Yelp应用也转投Glide的阵营了,而且Glide在跟Listview的配合起来非常的顺畅,Glide除了配置简单,还可以本地缓存图片,也可以实现Listview图片的提前预加载,使得listview的更加的顺滑,具体可以查看Yelp的那篇博文。但是如果碰到要把加载下来的图片转成圆角或者圆形的图......
  • Wireshark的安装及基本使用【计算机网络】
    Wireshark的安装与基本使用【计算机网络】前言推荐Wireshark的安装与基本使用一、下载二、安装三、使用技巧四、简单使用4.1捕获4.2简单介绍4.3过滤问题最后前言2023-5-420:51:42以下内容源自《【计算机网络】》仅供学习交流使用推荐Wireshark的下载安装及简单使用教程链接:ht......
  • 使用Node.js调用Sqlite3模块写的大数据查询接口
    使用Node.js调用Sqlite3模块写的大数据查询接口constsqlite3=require('sqlite3');consthttp=require('http');consturl=require('url');constSqliteDb=async(dbFile)=>{constpri={};pri.db=newsqlite3.Database(dbFile);......
  • thinkphp使用pgsql,提示table_msg函数缺失的解决方法
    thinkphp使用pgsql,提示table_msg函数缺失的解决方法 打开navicate,打开查询,执行下面代码就可以解决:CREATEORREPLACEFUNCTIONpgsql_type(a_typevarchar)RETURNSvarcharAS$BODY$DECLAREv_typevarchar;BEGINIFa_type='int8'THENv_type:......
  • .net 6 使用 NEST 查询,时间字段传值踩坑
    0x01业务描述说明:同事搭建的业务系统,最开始使用 log4net 记录到本地日志.然后多个项目为了日志统一,全部记录在 Elasticsearch ,使用  log4net.ElasticSearchAppender.DotNetCore.然后搭建了Kibanal  对 Elasticsearch 进行查询. 但是项目组开发人员众多,不是每......
  • 第三节:Redux Toolkit 使用详解
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......