npm入门

最后更新于:2022-04-02 05:29:16

                        ## 前言

在nodejs大环境下,npm作为包管理工具风靡一时,作为前端开发者需要知道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 &gt;1.0.0 安装大于某个版本,默认等于版本的。 <1.0.0 安装小于某个版本

  • npm指令速记表

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模块。
  1. 代码托管地址新建仓库(建立这个的原因主要是方便维护各个修改状态,因为我们一般不会针对每个修改都发布版本)
  2. 新建模块文件夹,或者检出仓库地址,文件夹内写主要入口文件index.js
  3. 初始化包描述文件,填写基本模块信息
  4. 添加许可证,说明文件等次要信息,必要时可以添加说明文档,测试用例等
  5. 模块主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>