npm入门
最后更新于:2022-04-02 05:29:16
## 前言
在nodejs大环境下,npm作为包管理工具风靡一时,作为前端开发者需要知道npm可以实现哪些操作,核心的机制是如何的。
快速入手
基本了解
npm的运行环境是nodejs,默认nodejs安装之后就可以执行npm命令,nodejs的安装教程可以站内搜索或者百度搜索。
$ npm -v 3.10.3 #全局安装 ,建议全局安装一次(npm install --global=npm i -g) $ npm i -g #依赖安装,根据项目里的模块依赖情况(安装到依赖 --save 安装到开发依赖 --save-dev) $ npm i --save-dev
模块版本说明 ^1.0.0 此主版本 1.x.x>=1.0.0 ~1.0.0 主版本对,并且包括分支小版本 1.1.0>1.0.x>=1.0.0 >1.0.0 安装大于某个版本,默认等于版本的。 <1.0.0 安装小于某个版本
npm安装某模块
npm也支持检索,但是npm模块太多,建议根据准确的模块名称直接安装。
#全局安装某模块 $ npm i packname -g #全局安装某模块特定版本 $ npm i packname@1.0.0 -g #依赖安装某模块 $ npm i packname --save-dev #查看依赖的模块 $ npm less
npm卸载模块
#卸载某模块uninstall=un
$ npm un packname
发布与删除模块
npm增加用户,也可以官网注册
# 增加用户 $ npm adduser # 用户登录 $ npm login
模块要想发布到npm仓库,必须有package.json的包说明文件,其他不做具体要求,可根据自己的需要灵活开发私属模块。建议通过npm init来实现模块包文件初始化,通过npm init -y ,npm init -f 回到初始化状态。
# 模块初始化 $ npm init # 发布模块 $ npm publish [name] # 删除模块 $ npm unpublish [name] ## 回到初始化 $ npm init -y $ npm init -f
查看以及更新模块
#查看模块详情 $ npm info [name] #更新模块 $ npm update [name]
测试模块
#项目测试 test=t $ npm test $ npm t
枚举可用脚本
# 打开package.json文件并检查scripts部分 cat package.json # 运行npm run得到一个的所有可用的脚本的列表。 npm run # 安装ntl (npm i -g ntl),然后运行ntl在项目文件夹中。它也可以运行脚本,也很方面。 npm i -g ntl
新建模块简易教程
- 模块示例,发布模块要符合cmd模块规范。可以按照以下 步骤制定js模块。
- 代码托管地址新建仓库(建立这个的原因主要是方便维护各个修改状态,因为我们一般不会针对每个修改都发布版本)
- 新建模块文件夹,或者检出仓库地址,文件夹内写主要入口文件index.js
- 初始化包描述文件,填写基本模块信息
- 添加许可证,说明文件等次要信息,必要时可以添加说明文档,测试用例等
- 模块主js文件参考 ``` javascript //当前模块依赖的模块 var re=require("m1"); // 模块私有变量 var ab=""; // 模块私有方法 function parse(){ #code here }; //确定对外接口的变量 or方法 module.exports.ab=ab; module.exports.parse=parse;
5. 模块的输出定义与使用(不能混淆使用),会报错:`Cannot assign to read only property 'exports' of object '#<object>'`,参考如下匹配规则。
``` javascript
//定义module.exports
module.exports={
}
import xxx from 'xxx'
// 定义export default
export default {
booklist, comp1
}
require('xxx')
其他问题
如何发布带前缀的私有模块
npm 私有的包如何进行发布 加组织名 npm publish --access=public 添加发布渠道为公共即可
参考资料
-
<script src="https://docs.gechiui.com/csnikey-fepro-guide/gc-content/themes/gechiui-book/js/marked.min.js"></script>
<script>content=document.getElementById("md-view").innerHTML;</script></object>