最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 前端开发你不得不知道的 Node 知识

    正文概述 掘金(qiuliang)   2020-12-13   450

    前言

    在现在随着三大框架的崛起,我们都会安装 Node.js,使用里面的包管理工具(npm)。虽然平时我们只需要会安装会启动以及打包就行了,但是我们也是需要更加了解其更多知识。

    模板加载

    核心模块加载

    核心模块是指 Node.js 自带的模块。node启动时,核心模块文件已经被编译到了二进制文件中了,我们只需要按照名字来加载就可以了。

    第三方模块加载(平时使用)

    这里的第三方模块也就是我们平时通过 npm 进行下载的东西,比如:你现在想下载一个时间格式化插件(moment.js)。你 npm install moment,这个 moment 插件就是第三方模块。

    加载方式:

    1. 先找到当前文件所处目录中的 node_modules 目录
    2. 然后根据文件目录下的package.json(非外层)找到文件中的 main 属性
    3. main 属性中就记录了 moment.js 的入口模块
    4. 然后加载使用这个第三方包,但是实际上最终加载的还是文件
    5. 如果 package.json 文件不存在或者 main 指定的入口模块也是没有
    6. 则 node 会自动找该目录下的 index.js,也就是说 index.js 会作为一个默认备选项
    7. 如果以上所有任何一个条件都不成立,则会进入上一级目录中的 node_modules 目录查找
    8. 如果上一级还没有,则继续往上上一级查找
    9. 如果直到当前磁盘根目录还找不到,最后报错: can not find module xxx

    所以我们平时会使用 global 指令,例如:npm install moment --global。它就会存在磁盘根目录。

    常见命令

    初始化

    // 通过向导在当前目录生成一个package.json文件
    npm init
    // 跳过向导快速在当前目录生成一个package.json文件
    npm init -y 或 --yes
    

    安装

    // 安装模块,默认会安装最新的版本
    npm install packagename
    // 安装指定版本的模块
    npm install packagename 0.0.1
    // --save、-S参数意思是把模块的版本信息保存到dependencies(生产环境依赖)中,即你的package.json文件的dependencies字段中
    npm install packagename --save 或 -S
    // --save-dev 、 -D参数意思是吧模块版本信息保存到devDependencies(开发环境依赖)中,即你的package.json文件的devDependencies字段中
    npm install packagename --save-dev 或 -D
    // 安装全局的模块(不加参数的时候默认安装本地模块)
    npm install packagename -g 或 --global
    

    查看

    // 查看所有已经安装的模块
    npm list 或 npm ll 或 npm la 或 npm ls
    //查看全局安装目录,并且只看一级
    npm ls -g --depth 0
    // 查看当前安装的包版本
    npm ls packagename
    // 查看全局安装的包版本
    npm ls packagename -g
    // 查看所有版本信息
    npm view packagename versions
    // 查看最新版本信息
    npm view packagename version
    

    更新

    // 更新模块还可以使用(up, upgrade)。当然你也可以指定版本、指定是否全局、指定是否为开发依赖。
    npm update [name [version]][-g][--save][--save-dev]]
    

    卸载

    // 卸载已经安装的模块,还可以使用(remove、rm、r, un、unlink)。当然你也可以指定版本、指定是否全局、指定是否为开发依赖。
    npm uninstall [name [version]][-g][--save][--save-dev]]
    

    缓存

    // 验证缓存
    npm cache verify
    // 清除缓存
    npm cache clean --force
    

    package.json 和 package-lock.json 作用分析

    • package.json 文件里记录有项目所安装的依赖项,当 node_modules 被删除时,可以再根据该文件安装所需的依赖项。
    • npm 5 以前不会有 package-lock.json 这个文件,npm5 之后才加入这个文件。
    • 当安装的时候,npm 都会生成或者更新 package-lock.json 这个文件。
    • npm 5 之后的版本安装包的时候不需要加 --save 参数,它会自动保存依赖的信息。
    • 当安装包的时候,会自动创建或者更新 package-lock.json 文件。
    • package-lock.json 文件会保存 node_modules 中所有包的信息(版本、下载地址),重新 npm install 的时候速度会提升。它主要用来锁定版本号,防止自动升级新版,从而造成兼容性问题。

    切源操作

    cnpm(China Node Package Manager)

    npm install cnpm -g --registry=https://registry.npm.taobao.org
    

    nrm

    nrm 其实就是一个切源工具,它记录了大部分的镜像以及可以自己管理自己的镜像地址(你可以添加或者删除)。

    npm install -g nrm
    

    具体命令:

    nrm ls // 镜像列表
    nrm -h // 查看所有指令
    nrm test // 测试镜像速度
    nrm use taobao // 使用淘宝镜像
    nrm add registry http://registry.npm.frp.trmap.cn/ // 增加源
    nrm del <registry> // 删除源
    

    下载网 » 前端开发你不得不知道的 Node 知识

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元