初學Node(二)package.json文件

package.json簡介javascript

  package.json在Node項目中用於描述項目的一些基本信息,以及依賴的配置,通常每個Node項目的根目錄下都有一個package.json文件。html

  在項目的根目錄中咱們能夠經過npm init來初始化一個package.json文件,其內容是一個Json對象,基本結構以下:java

{
  "name": "package",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

  package.json文件中包含了不少的屬性,這些屬性都是項目的一些基本信息以及一些配置信息,這裏是一些更詳細的信息,着重介紹一些咱們常常用到的屬性。node

name main屬性react

  name和version屬性是package.json文件兩個不可或缺的屬性,一般name屬性和咱們項目的文件名稱是同樣的,version表示這個項目的版本號。jquery

  main屬性指定了加載時的入口文件,當使用require()語法來加載一個模塊時,就會查看package.json文件的main屬性,main屬性的屬性值就是要加載的模塊。npm

  在桌面新建一個文件夾(模塊)命名爲factory,在該文件夾內新建一個index.js文件,在index.js文件中寫入如下代碼:json

function create(){
    var product = "我是一個產品";
    return product;
}
exports.create = create;

  而後在桌面上新建一個store文件夾,在該文件夾內新建一個store.js文件,在store.js文件中寫入如下代碼:函數

var factory = require("../factory");
var product = factory.create();
console.log(product);

  在命令行中進入store文件夾輸入node store.js,能夠發現運行成功,在store.js中經過require()函數加載factory模塊時若是沒有package.json文件,默認就會加載模塊中的index.js文件。若是存在package.json文件這樣在require()加載一個模塊時,就會讀取package.json文件的main屬性,main屬性指定的入口文件就是require()要加載的文件:ui

  如今經過命令行進入factory文件經過npm init命令初始化一個package.json文件,將package.json文件的main屬性改成demo.js,而後在將factory文件內的index.js文件更名爲demo.js,而後在命令行中進入store文件在執行node store.js,仍然是能夠成功運行的。

scripts屬性

  scripts屬性能夠指定npm命令縮寫。在store文件夾中初始化package.json文件,而後添加scripts屬性:

  執行npm run start仍然能夠運行成功,經過scripts屬性npm run start等價於node store.js。

  關於scripts的更具體的使用請看這裏

dependencies devDependencies屬性

  當咱們在命令行中執行npm install jquery -save時會在當前目錄下新建一個node_modules文件夾,將jquery下載到node_modules文件內,並將該模塊的依賴寫入到dependencies內。若是執行npm install react -save-dev時會將react下載到node_modules文件下並將依賴寫入到devDependencies內。

  "dependencies": {
    "jquery": "^3.1.1"
  },
  "devDependencies": {
    "react": "^15.3.2"
  }

 

  若是在寫入依賴以後咱們刪除node_module文件,而後執行npm install就會讀取package.json文件的dependencies和devDependencies屬性自動下載寫入的依賴模塊。

相關文章
相關標籤/搜索