Node之npm常用命令与package.json文件

news2024/12/26 23:10:34

新书速览|Vue.js+Node.js全栈开发实战-CSDN博客

《Vue.js+Node.js全栈开发实战(第2版)(Web前端技术丛书)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com)

npm常用命令

npm默认与Node.js一起安装,可以在命令行中输入“npm”来验证npm是否安装,如图4.1所示。

1.npm --v、npm--version

通过输入npm -v命令或者npm --version命令,可以查看npm的安装版本,如图4.2所示。

图4.1  验证npm是否安装

图4.2  npm查看版本结果

2.npm init

通过npm init命令可以生成一个package.json文件。这个文件是整个项目的描述文件。通过这个文件可以清楚地知道项目的包依赖关系、版本、作者等信息。每个npm包都有自己的package.json文件。使用这个命令需要填写项目名、版本号、作者等信息,如图4.3所示。

填写完毕后,在运行命令的文件夹中会多出一个package.json文件。当然,如果读者不想填写这些内容,也可以在这条命令后添加参数-y或者--yes,这样系统将会使用默认值生成package.json文件。例如:

npm init -y

//or

npm int --yes

3.npm install

通过npm install命令安装包,例如安装underscore包(underscore是一个强大的JavaScript工具库,使用这个库可以大大提高开发效率),如图4.4所示。

图4.3  npm init生成package.json文件

图4.4  安装underscore的结果

命令运行完毕后,可以发现在运行命令的文件夹中多了一个名为“node-modules”的文件夹(用来存放安装包的文件夹)。打开这个文件夹就可以找到名为“underscore”的文件夹(用来存放underscore包),underscore文件夹下的文件如图4.5所示。

图4.5  underscore文件夹下的文件

在安装包的时候,同样可以在命令后添加--save或者-S参数,这样安装包的信息将会记录在package.json文件的dependencies字段中,如图4.6所示。这样可以很方便地管理包的依赖关系。

当然如果这个包只是开发阶段需要的,可以继续添加-dev参数。这样安装包的信息将会记录在package.json文件的devDependencies字段中,如图4.7所示。

建议:将所有项目安装的包都记录在package.json文件中。当package.json文件中有了依赖包的记录时,只需要运行npm install命令,系统就会自动安装所有项目需要的依赖包。

当不需要使用某个包时,可以运行npm uninstall命令来卸载这个包。

package.json文件

上一节提到package.json文件是提供包描述的文件。在Node.js中,一个包是一个文件夹,文件夹中的package.json文件以JSON格式存储该包的相关描述。一个典型的package.json文件内容(这是underscore的package.json文件,有删减)如下:

{
  "author": {
    "name": "Jeremy Ashkenas",
    "email": "jeremy@documentcloud.org"
  },
  "bugs": {
    "url": "https://github.com/jashkenas/underscore/issues"
  },
  "dependencies": {},
  "description": "JavaScript's functional programming helper library.",
  "devDependencies": {
    "docco": "*",
    "eslint": "0.6.x"
  },
  "directories": {},
  "gitHead": "e4743ab712b8ab42ad4ccb48b155034d02394e4d",
  "homepage": "http://underscorejs.org",
  "keywords": [
    "util",
    "functional",
    "server"
  ],
  "license": "MIT",
  "main": "underscore.js",
  "maintainers": [
    {
      "name": "jashkenas",
      "email": "jashkenas@gmail.com"
    },
    {
      "name": "jridgewell",
      "email": "justin+npm@ridgewell.name"
    }
  ],
  "name": "underscore",
  "repository": {
    "type": "git",
    "url": "git://github.com/jashkenas/underscore.git"
  },
  "version": "1.8.3"
}

以下对主要的字段进行说明:

  1. name:包的名字。
  2. respository:包存放的仓库地址。
  3. keywords:包的关键字,有利于别人通过搜索找到包。
  4. license:遵循的协议。
  5. maintainers:包的维护者。
  6. author:包的作者。
  7. version:版本号,遵循版本命名规范。
  8. dependencies:包依赖的其他包。
  9. devDependencies:包开发阶段所依赖的包。
  10. homepage:包的官方主页。

当然,以上仅列举了常见的字段,所有字段的说明可以在网站https://docs.npmjs.com/files/ package.json上找到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2046190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

达梦数据库系列—49.审计功能

目录 1、打开审计 2、审计级别 系统级审计 语句级审计 对象级审计 3、审计文件管理 删除审计文件 查看审计信息 4、审计分析 审计分析工具Analyzer 审计分析工具dmaudtool 1、打开审计 0:关闭审计1:打开普通审计2:打开普通审计和…

qt 5.15.2 使用pdf

1. 安装Qt 5.15.2 选择对应编译器和源码: 安装后已有pdf对应的库和源码: 将QtPdf和QtPdfWidgets目录拷贝到msvc2019_64/include(根据需要用到的编译器而定) 将C:\Qt\5.15.2\Src\qtwebengine\src\pdf\api所有文件拷贝到C:\Qt\5.15.2\msvc2019_64\include\…

低功耗蓝牙协议栈如何学习?

目录 1. 基础知识 1.1 了解BLE基本概念 1.2 阅读BLE规范 2. 实践和开发工具 2.1 使用开发板 2.2 安装开发环境 3. 学习资源 3.1 官方文档和示例 3.2 在线课程和教程 4. 实践项目 4.1 简单项目 4.2 复杂项目 5. 深入理解协议栈 5.1 分析协议栈 5.2 调试和分析 6…

v-charts的下载与引用

近期,因项目需要,需用v-charts做一些登录后首页的展示图,按之前的逻辑echarts官网都有API直接拿来用就行了,但是我的项目框架是vuespringboot,我的vue版本是2.6.1,这个v-charts文档在网上搜了搜&#xff0c…

nginx服务部署及其平滑升级

概述 1. 7层负载均衡(nginx) 1. 停掉4层的环境 systemctl disable --now keepalived.service # 停用之前的4层协议方式2. 源码安装nginx tar zxf nginx-1.22.1.tar.gz 具体方式是源码编译“三部曲” ./configure # 负责检查环境,生成指导…

每日OJ_牛客_星际密码(矩阵+斐波那契)

目录 牛客_星际密码(矩阵斐波那契) 解析代码 牛客_星际密码(矩阵斐波那契) 星际密码__牛客网 解析代码 这个题目首先需要明确矩阵是固定的,其次是矩阵相乘的方法。解题思路:初始化斐波那契数列&#xff…

leetcode刷题-二叉树05

代码随想录二叉树part05|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树 654.最大二叉树一遍过,不过貌似有多种解法,后序再补充 617.合并二叉树700.二叉搜索树中的搜索98.验证二叉搜索树看其他解题方法 654.最大二叉树 代码…

RCE的另外一些绕过练习

目录 被过滤了flag怎么办 方法 结果 过滤了flag、php、system 方法一 结果 ​编辑 方法二 过滤了很多但是主要的就是过滤了空格 和 注意一下这个就行 方法一 方法二 相对于上面一道题来说多过滤了一个括号 方法一 被过滤了flag怎么办 <?php error_reportin…

29岁才转行软件测试,目前31了,我的一些经历跟感受

按惯例&#xff0c;先说下我基本情况。我是90年的&#xff0c;算是最早的90后&#xff0c;现在跟你介绍的时候还恬不知耻的说我是90后&#xff0c;哈哈&#xff0c;计算机专业普通本科毕业。在一个二线城市&#xff0c;毕业后因为自身能力问题、认知水平问题&#xff0c;再加上…

Cesium倾斜相机视角观察物体

先看效果&#xff1a; 在cesium中&#xff0c;我们有时需要倾斜相机视角去观察物体&#xff0c;如相机俯视45观察物体。 cesium的api提供了倾斜相机视角的配置&#xff0c;但是直接使用cesium的api不能达到我们想要的效果。 函数如下&#xff1a; function flyToBox() {let l…

XSS反射性

目录 1.URL 编码 "javascript:alert(1)" 2.HTML字符实体编码 &#;"javascript" 和 URL 编码 "alert(2)" 3.URL 编码 ":" 就是%3a 4.HTML字符实体编码 < 和 > 5.HTML字符实体编码 < 和 > 6.<s…

UGUI合批个人学习心得

从目前学到的知识上看&#xff0c;合批就是最基础的条件就是需要贴图和材质相同&#xff0c;这两个一样才有可能合批&#xff0c;UGUI合批是以Canvas为单位的。 UGUI的合批就是把某个Canvas下满足合批规则的UI控件的网格合并为一个大的网格&#xff0c;然后将这些网格合并在一起…

MyBatis首篇-入门第一文

目录 MyBatis关键特性和概念使用步骤简单示例 核心组件主要特点常见使用情景常见优化策略 MyBatis MyBatis是一个优秀的半自动化持久层框架&#xff0c;它支持定制化SQL、存储过程以及高级映射。MyBatis避免了大部分JDBC代码和手动设置参数以及获取结果集的繁琐性。用户只需要…

机器学习/深度学习——模型的欠拟合和过拟合,正则化方法详解

机器学习/深度学习——模型的欠拟合和过拟合&#xff0c;正则化方法 详解 搭配以下文章进行学习&#xff1a; 卷积神经网络&#xff1a; 深度学习——卷积神经网络&#xff08;convolutional neural network&#xff09;CNN详解&#xff08;一&#xff09;——概述. 步骤清晰…

WHD温湿度控制器:智能守护,让电力设备远离“温湿”困扰,安全运行每一刻

​在电力系统的庞大网络中&#xff0c;中高压开关柜、端子箱、环网柜及箱变等关键设备&#xff0c;其稳定运行直接关系到电力供应的安全与效率。WHD系列温湿度控制器以智能化、精准化的温湿管理方案&#xff0c;为电力设备筑起了一道坚不可摧的安全防线。 WHD系列温湿度控制器搭…

【Spring Boot】全局异常处理

目录 背景 前言 设计步骤 1.定义异常信息类&#xff1a; 2.自定义异常&#xff1a; 3.创建全局异常处理类 4.在控制器中抛出异常 5.输出 捕获 Valid 校验异常 背景 去面试的时候被问到SpringBoot项目中&#xff0c;如何处理全局异常的&#xff0c;也就是如何捕获全局异…

软件包管理器以及NFS

一.YUM 1.1 YUM介绍 学习YUM 软件仓库&#xff0c;可以完成安装、卸载、自动升级 rpm 软件包等任务&#xff0c;能够自动 查找并解决 rpm 包之间的依赖关系&#xff0c;而无须管理员逐个、手工地去安装每个 rpm 包&#xff0c;使管 理员在维护大量 Linux 服务 器时更加轻松自…

MS Visual Studio使用ACLLib库

目录 前言 二、MS Visual Studio使用ACLLib库 1.拿到库文件 2.新建VS项目 1&#xff09;打开VS Studio 2&#xff09;新建Windos 桌面向导文件 3&#xff09;创建 4&#xff09;选择空项目 5&#xff09; 新建main.c文件 3.将得到的acllib.c 与 acllib.h文件复制到项目…

HNU-2024计算机系统-小班讨论6

写在前面&#xff1a; 本次讨论课的选题主要围绕着程序性能优化章节中的分支预测部分&#xff0c;我个人感觉这板块是CSAPP教材中最不好理解的部分&#xff0c;需要大家多看教材&#xff0c;多讨论分析。 本文所有题目由全组同学共同完成&#xff0c;感谢每一位同学的支持与付…

【C++】序列与关联容器(二)序列容器

【C】序列与关联容器&#xff08;二&#xff09;序列容器 一、C 标准库中的序列容器模板二、array 容器模板三、vector元素模板 一、C 标准库中的序列容器模板 每种容器的实现方法的难易不同&#xff0c;特性不同&#xff0c;适用的应用场景不同 array &#xff1a;元素个数固…