首页 > 编程语言 >前端开发系列077-Node篇之package

前端开发系列077-Node篇之package

时间:2022-12-15 09:13:31浏览次数:56  
标签:Node 077 less js jquery nbsp grunt 前端开发

title: '前端开发系列077-Node篇之package'
tags:
  - Node系列
categories: []
date: 2018-07-24 23:20:13
本文输出Node中和包有关的基本内容。

一、Node中的模块和包

模块 在Node中,以模块为单位来划分所有的功能。

从某种角度来说,Node应用都由大量模块组成,每个模块都是一个JavaScript文件。Node提供了完成的模块加载机制,模块模块加载机制这种设计让我们能够将应用程序划分成多个不同的部分,可以对这些部分进行协同管理,还能够处理:

- 提高应用程序的开发效率
- 提高应用程序代码的可读性
- 减少应用程序的代码量(重用代码)

在Node中,通过包来对一组具有相互依赖关系的模块进行统一管理

Node中的包事实上所指代的是一个文件目录,该目录中主要包含以下内容

> ①    在`bin`子目录中存放二进制文件。
> ②    在`lib`子目录中存放JavaScript文件。
> ③    在`doc`子目录中存放与包使用相关的说明性文档。
> ④    在`dist`子目录中存放JavaScript文件(发布)。
> ⑤    在`test`子目录中存放用于对包进行单元测试的文件。
> ⑥    在包的根目录中存放包含用于描述包信息的`package.json`文件。

这里列出典型的包的目录结构

//该目录结构通过使用$ npm install less命令安装并进入到less包文件目录获取。
.
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Gruntfile.js
├── LICENSE
├── README.md
├── appveyor.yml
├── bin
│   └── lessc
├── bower.json
├── browser.js
├── dist
│   ├── less.js
│   └── less.min.js
├── index.js
├── lib
│   ├── less
│   ├── less-browser
│   ├── less-node
│   └── source-map
├── package.json
└── test
    ├── browser
    ├── copy-bom.js
    ├── css
    ├── data
    ├── import-module
    ├── index.js
    ├── less
    ├── less-bom
    ├── less-test.js
    ├── modify-vars.js
    ├── plugins
    └── sourcemaps

二、package.json文件

package.json文件用于对包进行描述,JSON格式文件。

package.json文件的主要字段

name 包的名称 scripts 定义脚本命令。 main 包的主文件。 version 包的版本号。 homepage 包的主页地址。 bugs bug的提交地址,可能是url地址或邮箱地址。 author 作者信息(对象),包含作者姓名(`name`)和主页(`url`)以及邮箱(`email`)等。 license 该包采用的开源协议,常见的有MIT、Apache 和GPL等 keywords 用于搜索的关键字数组( `$ npm search xxx`) description 包描述信息,对包进行简单的说明。 repository 托管仓库相关的信息,通常包括仓库的类型(`type`)和托管地址(`url`)。 dependencies 运行时需要依赖的包(对象类型:由包名和版本信息组成)。 devDependencies 开发时需要依赖的包(对象类型:由包名和版本信息组成),上线时不会打包。

这里列出典型的json文件的内容:

//备注:列出的是jQuery框架的package.josn文件,可通过$ npm install jquery安装
{
  "author": {
    "name": "JS Foundation and other contributors",
    "url": "https://github.com/jquery/jquery/blob/3.3.1/AUTHORS.txt"
  },
  "bugs": {
    "url": "https://github.com/jquery/jquery/issues"
  },
  "bundleDependencies": false,
  "commitplease": {
    "nohook": true,
    "components": [
      "Docs",
      "Tests",
      "Build",
      "Support",
      "Release",
      "Core",
      "Ajax",
      "Attributes",
      "Callbacks",
      "CSS",
      "Data",
      "Deferred",
      "Deprecated",
      "Dimensions",
      "Effects",
      "Event",
      "Manipulation",
      "Offset",
      "Queue",
      "Selector",
      "Serialize",
      "Traversing",
      "Wrap"
    ],
    "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)",
    "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])"
  },
  "dependencies": {},
  "deprecated": false,
  "description": "JavaScript library for DOM operations",
  "devDependencies": {
    "babel-core": "7.0.0-beta.0",
    "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0",
    "commitplease": "2.7.10",
    "core-js": "2.4.1",
    "eslint-config-jquery": "1.0.1",
    "grunt": "1.0.1",
    "grunt-babel": "7.0.0",
    "grunt-cli": "1.2.0",
    "grunt-compare-size": "0.4.2",
    "grunt-contrib-uglify": "3.0.1",
    "grunt-contrib-watch": "1.0.0",
    "grunt-eslint": "20.0.0",
    "grunt-git-authors": "3.2.0",
    "grunt-jsonlint": "1.1.0",
    "grunt-karma": "2.0.0",
    "grunt-newer": "1.3.0",
    "grunt-npmcopy": "0.1.0",
    "gzip-js": "0.3.2",
    "husky": "0.14.3",
    "insight": "0.8.4",
    "jsdom": "5.6.1",
    "karma": "1.7.0",
    "karma-browserstack-launcher": "1.3.0",
    "karma-chrome-launcher": "2.2.0",
    "karma-firefox-launcher": "1.0.1",
    "karma-qunit": "1.2.1",
    "load-grunt-tasks": "3.5.2",
    "native-promise-only": "0.8.1",
    "promises-aplus-tests": "2.1.2",
    "q": "1.5.0",
    "qunit-assert-step": "1.0.3",
    "qunitjs": "1.23.1",
    "raw-body": "2.2.0",
    "requirejs": "2.3.3",
    "sinon": "2.3.7",
    "sizzle": "2.3.3",
    "strip-json-comments": "2.0.1",
    "testswarm": "1.1.0",
    "uglify-js": "3.3.4"
  },
  "homepage": "https://jquery.com",
  "keywords": [
    "jquery",
    "javascript",
    "browser",
    "library"
  ],
  "license": "MIT",
  "main": "dist/jquery.js",
  "name": "jquery",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/jquery/jquery.git"
  },
  "scripts": {
    "build": "npm install && grunt",
    "commitmsg": "node node_modules/commitplease",
    "jenkins": "npm run test:browserless",
    "precommit": "grunt lint:newer qunit_fixture",
    "start": "grunt watch",
    "test": "grunt && grunt test:slow && grunt karma:main",
    "test:browser": "grunt && grunt karma:main",
    "test:browserless": "grunt && grunt test:slow"
  },
  "title": "jQuery",
  "version": "3.3.1"
}

标签:Node,077,less,js,jquery,nbsp,grunt,前端开发
From: https://www.cnblogs.com/wendingding/p/16984235.html

相关文章

  • nodemon 简介、安装和基本使用
    nodemon先看下官网的简介:Nodemonisautilitydependedonabout3millionprojects,thatwillmonitorforanychangesinyoursourceandautomaticallyrestartyou......
  • 【Node.JS 】path路径模块
      往期文章​​【Node.JS练习】考试成绩整理​​​​【Node.JS】buffer类缓冲区​​​​【Node.JS】事件的绑定与触发​​​​【Node.JS】写入文件内容​​​​【Node.JS......
  • #yyds干货盘点#node.js链接MongoDB数据库
    在这之前确保当前环境下安装了mongodb的模块,且mongodb数据库已经启动,安装mongodb模块到当前目录可以通过yarnaddmongodb我此时安装的是v4.1.4版本的mongodb常见的连接方法......
  • Nodejs学习 2 -- events事件处理EventEmitter
    EventEmitter类模块:events源码:events.jsEventEmitter类,是node中事件的基础,实现了事件模型需要的接口,包括addListener,removeListener,emit及其ta工具方法.同原生ja......
  • k8s--service 之 HeadLiness、NodePort 使用
    前戏环境还是使用我们上节的环境HeadLiness在某些场景中,开发人员可能不想使用Service提供的负载均衡功能,而希望自己来控制负载均衡策略,针对这种情况,kubernetes 提供了H......
  • Vercel是什么?怎么部署Node服务?
    Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!之前在写面试常客:HTTP缓存时,曾经就强缓存和协商缓存写过两个......
  • 我们是否对现代前端开发框架过于崇拜了?
      前端界有两个“教派”,一个叫Vue,一个叫React。Vue的成员看不起React,React成员鄙视Vue,他们认为手中的“教义”就是真理,可以消灭世界一切苦难。但正如没有绝对的......
  • 我们是否对现代前端开发框架过于崇拜了?
      前端界有两个“教派”,一个叫Vue,一个叫React。Vue的成员看不起React,React成员鄙视Vue,他们认为手中的“教义”就是真理,可以消灭世界一切苦难。但正如没有绝对的......
  • 卸载 nodejs 时报错 you must be an administrator to remove this application 的解
    这是在win11下报的错,要不怎么说win11就是个笑话。我是这么解决的:首先找到原始的安装包。再以管理员身份打开cmd(怎么操作?先打开一个普通的cmd,然后按住ctl+shift......
  • 我们是否对现代前端开发框架过于崇拜了?
      前端界有两个“教派”,一个叫Vue,一个叫React。Vue的成员看不起React,React成员鄙视Vue,他们认为手中的“教义”就是真理,可以消灭世界一切苦难。但正如没有绝对的......