[TOC]
# 使用 package.json
package.json 位于模塊的目錄下,用于定義包的屬性。接下來讓我們來看下 express 包的 package.json 文件,位于 node_modules/express/package.json 內容:
* Package.json 屬性說明
* name - 包名。
* version - 包的版本號。
* description - 包的描述。
* homepage - 包的官網 url 。
* author - 包的作者姓名。
* contributors - 包的其他貢獻者姓名。
* dependencies - 依賴包列表。如果依賴包沒有安裝,npm 會自動將依賴包安裝在 node_module 目錄下。
* repository - 包代碼存放的地方的類型,可以是 git 或 svn,git 可在 Github 上。
* main - main 字段指定了程序的主入口文件,require('moduleName') 就會加載這個文件。這個字段的默認值是模塊根目錄下面的 index.js。
* keywords - 關鍵字
# 卸載模塊
我們可以使用以下命令來卸載 Node.js 模塊。
~~~
$ npm uninstall express
~~~
卸載后,你可以到 /node_modules/ 目錄下查看包是否還存在,或者使用以下命令查看:
~~~
$ npm ls
~~~
# 更新模塊
我們可以使用以下命令更新模塊:
~~~
$ npm update express
~~~
# 搜索模塊
使用以下來搜索模塊:
~~~
$ npm search express
~~~
# 創建模塊
創建模塊,package.json 文件是必不可少的。我們可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的結果。
~~~
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
name: (node_modules) runoob # 模塊名
version: (1.0.0)
description: Node.js 測試模塊(www.runoob.com) # 描述
entry point: (index.js)
test command: make test
git repository: https://github.com/runoob/runoob.git # Github 地址
keywords:
author:
license: (ISC)
About to write to ……/node_modules/package.json: # 生成地址
{
"name": "runoob",
"version": "1.0.0",
"description": "Node.js 測試模塊(www.runoob.com)",
……
}
Is this ok? (yes) yes
~~~
以上的信息,你需要根據你自己的情況輸入。在最后輸入 "yes" 后會生成 package.json 文件。
接下來我們可以使用以下命令在 npm 資源庫中注冊用戶(使用郵箱注冊):
~~~
$ npm adduser
Username: mcmohd
Password:
Email: (this IS public) mcmohd@gmail.com
~~~
接下來我們就用以下命令來發布模塊:
~~~
$ npm publish
~~~
如果你以上的步驟都操作正確,你就可以跟其他模塊一樣使用 npm 來安裝。
# 版本號
使用NPM下載和發布代碼時都會接觸到版本號。NPM使用語義版本號來管理代碼,這里簡單介紹一下。
語義版本號分為X.Y.Z三位,分別代表主版本號、次版本號和補丁版本號。當代碼變更時,版本號按以下原則更新。
如果只是修復bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大變動,向下不兼容,需要更新X位。
版本號有了這個保證后,在申明第三方包依賴時,除了可依賴于一個固定版本號外,還可依賴于某個范圍的版本號。例如"argv": "0.0.x"表示依賴于0.0.x系列的最新版argv。
# NPM 常用命令
除了本章介紹的部分外,NPM還提供了很多功能,package.json里也有很多其它有用的字段。
除了可以在npmjs.org/doc/查看官方文檔外,這里再介紹一些NPM常用命令。
NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。
NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。
使用npm help <command>可查看某條命令的詳細幫助,例如npm help install。
在package.json所在目錄下使用npm install . -g可先在本地安裝當前命令行程序,可用于發布前的本地測試。
使用npm update <package>可以把當前目錄下node_modules子目錄里邊的對應模塊更新至最新版本。
使用npm update <package> -g可以把全局安裝的對應命令行程序更新至最新版。
使用npm cache clear可以清空NPM本地緩存,用于對付使用相同版本號發布新版本代碼的人。
使用npm unpublish <package>@<version>可以撤銷發布自己發布過的某個版本代碼。
當你為你的模塊安裝一個依賴模塊時,正常情況下你得先安裝他們(在模塊根目錄下npm install module-name),然后連同版本號手動將他們添加到模塊配置文件package.json中的依賴里(dependencies)。
-save和save-dev可以省掉你手動修改package.json文件的步驟。
spm install module-name -save 自動把模塊和版本號添加到dependencies部分
spm install module-name -save-dve 自動把模塊和版本號添加到devdependencies部分
至于配置文件區分這倆部分, 是用于區別開發依賴模塊和產品依賴模塊, 以我見過的情況來看 devDepandencies主要是配置測試框架, 例如jshint、mocha
- HTML
- 標簽
- 超鏈接
- 列表
- 表格和表單
- h5新增標簽
- 快捷方式
- 標簽包含
- CSS
- 選擇器
- 行內,塊元素,鏈接
- css三大特性
- 盒子模型
- 定位
- css可見性
- emment書寫
- 文本元素
- 外觀屬性
- 背景
- 浮動
- ps
- 用戶界面樣式
- 顯示和隱藏
- 過渡
- 2D,3D變形
- 動畫animation
- 伸縮布局(CSS3)
- BFC
- 優雅降級和漸進增強
- 3D旋轉
- 雙飛翼和圣杯
- JS基礎
- 輸出消息的幾種方式
- 數據類型
- Date對象
- Math對象
- Array對象
- 字符串常用方法
- 數據類型轉換
- 等號運算
- 代碼調試
- 數組
- 函數
- WebAPI
- webapi簡介
- 獲取頁面元素
- 事件
- 屬性操作
- 創建元素
- 節點操作
- 事件詳解
- BOM
- 位置相關屬性
- 拖拽彈窗
- 彈出層加遮罩
- ES6
- let和const
- 解構表達式變化
- 函數優化
- map和reduce
- nrm
- npm
- npm基礎
- package.json
- 淘寶鏡像
- webpack
- 介紹
- 多入口文件(Multiple entry files)
- Webpack CSS loader加載器
- webpack Image loader 加載圖片
- uglify-js壓縮打包JS
- webpack構建本地服務器
- vue內部指令
- v-if,v-show,v-for
- v-text,v-html
- v-on
- v-model
- v-bind
- v-pre,v-cloak,v-once
- vue全局api
- Vue.directive 自定義指令
- vue.extend構造器的延伸
- vue.set全局操作
- Vue的生命周期(鉤子函數)
- Template 制作模版
- Component 初識組件
- Component 組件props 屬性設置
- Component 父子組件關系
- Component 標簽
- vue選項
- propsData Option全局擴展數據傳遞
- computed Option 計算選項
- Methods Option 方法選項
- watch選項監控數據
- Mixins 混入選項操作
- Extends Option 擴展選項
- delimiters 選項
- vue實例和內置組件
- 實例屬性
- 實例方法
- 實例事件
- 內置組件 -slot
- vue-cli
- vue-cli介紹
- 項目目錄結構
- vue-cli模板
- vue-router
- 簡介
- 配置子路由
- 參數傳遞
- 單頁面多路由區域操作
- url傳遞參數
- vscode