Node.js学习笔记(二)(npm、package.json、commonJs)

npm

npm是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

查看 npm 版本
npm -v

安装模块
npm install ModuleName 例: npm install jquery

查看 npm 版本
npm uninstall moudleName 例:npm uninstall jquery

查看模块的版本
npm info moudleName 例:npm info jquery

查看当前目录下已安装的 node 包
npm list

package.json

package.json 定义了这个项目所需要的各种模块,以及项目的配置信息

创建 package.json

npm init
npm init –yes

package.json 文件
{
“name”: “03npm”,
“version”: “1.0.0”,
“description”: “”,
“main”: “01test.js”,
“author”: “”,
“license”: “ISC”,
“dependencies”: {
“jquery”: “^3.3.1”
}
}

安装模块并把模块写入 package.json(依赖)
npm install 模块 --save
npm install 模块 --save-dev

dependencies 与 devDependencies 之间的区别?
使用 npm install node_module –save 自动更新 dependencies 字段值;
使用 npm install node_module –save-dev 自动更新 devDependencies 字段值;

dependencie 配置当前程序所依赖的其他包。
devDependencie 配置当前程序所依赖的其他包,只会下载模块,而不下载这些模块的测试和文档框架

“dependencies”: {
“jquery”: “^3.3.1”
}

^ 表示第一位版本号不变,后面两位取最新的
~ 表示前两位不变,最后一个取最新 的
*表示全部取最新的

commonJs

  • 1、我们可以把公共的功能抽离成为一个单独的JS文件作为一个模块, 默认情况下,这个模块里的方法过着属性,外部无法访问, 若要访问,则在模块里通过 exports 或者 module.exports 暴露属性或者方法。
  • 2、在需要使用模块的文件中,通过 require 的方式引入该模块, 就可使用该模块里暴露的属性和方法
    在这里插入图片描述
    commonjs.js
var obj = {
    get:() => {
        console.log('获取数据');
    },
    post:() => {
        console.log('提交数据');
    }
}
/**
 * const common = require('./ commonjs')
 * 向外暴露的写法(两种)
 * 1、exports.xxx = obj; // console.log(common); { xxx: { get: [Function: get], post: [Function: post] } }
 * 2、module.exports = obj; // console.log(common); { get: [Function: get], post: [Function: post] }
 */
module.exports = obj;

exports.get = () => {
    console.log('获取数据'); /* common.get(); 获取数据 */
}

// nodejs 会默认找 node_modules 对应模块的index.js 可直接写文件夹的名字 
const axios = require('axios');
axios.get();

/**
 * 若不是index.js 则会报错 Error: Cannot find module 'db' 
 * 当前目录下npm init --yes 要配置 package.json 方可使用
 */
const db = require('db');
db.post();


// 第一次加载某个模块时,Node.js 会缓存该模块。以后再加载该模块,就直接从缓存取出该模块的 module.exports 属性返回了。
const a = require('axios');
console.log(a.name); // 小豆花
a.name = '小小花';
// 第二次 require 模块时,并没有重新加载并执行模块。而是直接返回了第一次 require 时的结果,
const b = require('axios');
console.log(b.name); // 小小花
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值