zoukankan      html  css  js  c++  java
  • nodejs中包node_modules与package.json(三)

    一node_modules文件详解:包实际上是一个存档文件,即一个目录直接打包为.zip或tar.gz格式的文件,安装后解压还原为目录。完全符合CommonJS规范的包目录应该包含如下这些文件

      1、package.json:包描述文件

      2、bin:用于存放可执行二进制文件的目录

      3、lib:用于存放JavaScript代码的目录

      4、doc:用于存放文档的目录

      5、test:用于存放单元测试用例的代码

    二 package.json文件:定义了项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)NodeJS中的包

    package.json文件可以手工编写,也可以使用npm init命令自动生成。[注意]npm init -y表示在安装过程中回答的都是yes,会自动生成如下所示的package.json文件。所有配置项中,只有项目名称(name)和项目版本(version)是必填的,其他都是选填的。

    基本字段:package.json API

    1、name——包名。规范定义它需要由小写的字母和数字组成,可以包含.、_和-,但不允许出现空格。包名必须是唯一的,以免对外公布时产生重名冲突的误解。除此之外,NPM还建议不要在包名中附带上node或js来重复标识它是JavaScript或Node模块

    2、version——版本号。一个语义化的版本号,这在http://semver.org/上有详细定义,通常为major.minor.revision格式。该版本号十分重要,常常用于一些版本控制的场合

    [注意]对于nodejs来说,版本号的小数位代表为这个版本的稳定性,偶数位为稳定版本(0.6.x、0.8.x……),奇数位为非稳定版本(0.7.x、0.9.x……)。一般地,开发时要使用最新的稳定版本

    必须字段:CommonJS为package.json文件定义了包括name和version在内的10个必需的字段。但由于CommonJS包规范尚处于草案阶段,NPM在实践中做了一定的取舍

    1、description——包简介。方便别人了解该模块作用,搜索的时候也有用

    2、keywords——关键词数组,NPM中主要用来做分类搜索。一个好的关键词数组有利于用户快速找到该包

     [注意]livereload插件并没有设置keywords属性

    3、maintainers——包维护者列表。每个维护者由name、email和web这3个属性组成

     [注意]livereload插件并没有设置maintainers中的web属性

    4、contributors——贡献者列表。在开源社区中,为开源项目提供代码是经常出现的事情,如果名字能出现在知名项目的contributors列表中,是一件比较有荣誉感的事。列表中的第一个贡献应当是包的作者本人。它的格式与维护者列表相同

    可选字段

    scripts——脚本说明对象。它主要被包管理器用来安装、编译、测试和卸载包。scripts指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。script脚本解读

    其他字段:

    1. author——包作者
    2. bin——指定各个内部命令对应的可执行文件的位置。一些包作者希望包可以作为命令行工具使用。配置好bin字段后,通过npm install package_name -g命令可以将脚本添加到执行路径中,之后可以在命令行中直接执行。通过-g命令安装的模块包称为全局模式
    3. main——加载的入口文件。模块引入方法require()在引入包时,会优先检查这个字段,并将其作为包中其余模块的入口。如果不存在这个字段,require()方法会查找包目录下的index.js、index.node、index.json文件作为默认入口
    4. devDependencies——项目开发所需要的模块。一些模块只在开发时需要依赖。配置这个属性,可以提示包的后续开发者安装依赖包。类比于dependencies字段

    三 npm 包发布:

    1. npm包发布与使用
    2. npm包的废弃与删除

    Nodejs处理ES6模块 :

    Node.js 要求 ES6 模块采用.mjs后缀文件名。也就是说,只要脚本文件里面使用import或者export命令,那么就必须采用.mjs后缀名。Node.js 遇到.mjs文件,就认为它是 ES6 模块, 

    总结:.mjs文件总是以 ES6 模块加载,.cjs文件总是以 CommonJS 模块加载,.js文件的加载取决于package.json里面type字段的设置。

  • 相关阅读:
    补习系列(4)-springboot 参数校验详解
    华为鲁勇:5G+云+AI三大核心引擎将驱动广州数字经济发展
    selenium firefox
    徐翔之后新生代“敢死队”浮出水面:八年一万倍
    ActiveMQ讯息传送机制以及ACK机制
    一元线性回归分析及java实现
    jsoup -- xml文档解析
    HDU 1020 Encoding 字符串
    PHP缓存之文件缓存
    Eclipse PHPEclipse 配置
  • 原文地址:https://www.cnblogs.com/terrymin/p/15639502.html
Copyright © 2011-2022 走看看