包管理器测试题

一、 选择题(均为单选题,每小题6分,共8题, 48分)

 
1. 下面哪个不是npm的组成部分(  D  )
A. 官网
B. registry
C. CLI
D. node
 
2. 包配置文件的全称是(  B  )
A. package-lock.json
B. package.json
C. init.config
D. init.json
 
3. 如果一个包的代码所有工程都要使用,应该对它进行(   A )
       A. 本地安装
B. 全局安装
C. 本地安装和全局安装 
D. 以上都可以
解析:
全局安装的库只能对外暴露全局的命令,并不能让其他工程使用它的API。因此,要使用某个包的API,必须使用本地安装。 

4. 如果一个工程具有下面的目录结构,假如 src/index.js 中想使用包a,下面的哪句代码是无法达到目标的(  B    )。

|-- node_modules
|   |-- a
|           |-- index.js
|   |-- b
|       |-- index.js
|-- src
|   |-- index.js

A. require(“a”)
B. require(“../a”)
C. require(“../node_modules/a”)
D. require(“a/index.js”)
 
5. 如果一个包修复了一些bug,对版本号的改动,应该改动(  C )
A. 主版本号
B. 次版本号
C. 补丁版本号
D. 不改动
 
6. yarn的出现,是为了解决npm具有的问题,下面哪个问题不是yarn解决的(  D  )
A. 并行下载
B. 简化控制台输出
C. 使用lock文件记录确切依赖版本
D. 使用符号链接和硬链接节省磁盘空间
 
7. 语义版本号^1.3.4,表示(  C  )
A. 使用最新版
B. 主版本号不变,次版本号和补丁版本号随意
C. 主版本号不变,后续版本号要大于等于3.4
D. 主版本号大于等于1,后续版本号等于3.4
 
8. 下面哪个不是pnpm的优势( D  )
A. 安装效率高
B. 避免了开发时使用间接依赖的问题
C. 能极大的降低磁盘空间的占用
D. 有独立的、更加快速的registry
 
 

二、填空题(每空2分,共6空, 12分)

 
1. 要初始化一个工程,首先应该使用 npminit___命令为工程生成配置文件package_.json,然后使用npmiaddinstall包名安装指定的包,如果安装的包仅作为开发依赖,则应该添加参数--save-dev-D__,这样一来,当工程部署到服务器时,我们可以使用命令_npm install --production 或 **npm i --production____** ,仅安装生产环境的依赖。

2. 在编写node代码时,有可能需要知道当前处于什么环境,例如开发环境、生产环境,我们通常使用环境变量___NODE_ENV,通过该变量的值来判断当前的环境
 

三、简答题(共2题,每题20分, 40分)

 
1. 阐述npm脚本的意义,以及如何使用。

npm脚本的意义:使用npm脚本可以让开发者使用统一的命令来完成一个功能,而不用去以及命令具体的差异性写法

如何使用:首先在package.json文件的scripts中配置脚本,然后通过 npm run 脚本名 运行脚本
 
2. 如何理解全局安装和本地安装,又如何理解开发依赖和生产依赖?

全局安装和本地安装:只有当某个包提供的CLI命令需要在全局环境执行的时候,才需要全局安装,例如脚手架。其他的时候都应该使用本地安装,本地安装的CLI命令,可以通过npx运行。

开发依赖和生产依赖:默认情况下,安装的包都属于生产依赖,即在真实的产生环境中运行也需要该包的存在。而开发依赖则仅仅在开发阶段运行时才需要的依赖。