package.json

{
  "name": "sell-inquiries", 
  "version": "1.0.0",
  "description": "1.0.0",
  "author": "1",
  "private": true,
  "main": "filename.js",
  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js",
    "uatbuild": "node build/uatbuild.js",
    "commit": "node commit/index.js"
  },
  "dependencies": {
    "animate.css": "^3.6.1",
    "axios": "^0.16.2",
    "babel-polyfill": "^6.26.0",
    "element-ui": "2.3.9",
    "vue": "^2.5.2",
    "vue-cookie": "^1.1.4",
    "vue-router": "^3.0.1",
    "vue2-animate": "^2.0.0",
    "vuex": "^3.0.1"
  },
  "devDependencies": {
    "request": "^2.87.0",
    "autoprefixer": "^7.1.2",
    "babel-core": "^6.22.1",
    "babel-preset-env": "^1.3.2",
    "babel-preset-stage-2": "^6.22.0",
    "webpack-merge": "^4.1.0"
  },
  "keywords": ["short", "relevant", "keywords", "for", "searching"],
  "bin": {
    "someTool": "./bin/someTool.js"
  },
  "homepage": "https://your-package.org",
  "bugs": "https://github.com/user/repo/issues",
  "repository": "github:user/repo",
  "engines": {
    "node": ">= 6.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}

複製代碼

npm init:能夠建立一個package.json文件css


  1. name: 包的名字,name和version字段是package.json文件中最重要的字段。這是必須的字段,若是你的npm包沒有指定這兩個字段,將沒法被安裝。name和version字段被假定組合成一個惟一的標識符。包內容的更改和包版本的更改是同步的。

name字段的含義不須要過多解釋,就是npm包名。vue

幾個規則:node

  • name的長度必須小於等於214個字符。
  • name不能以"."(點)或者"_"(下劃線)開頭。
  • name中不能包含大寫字母。
  • name最終將被用做URL的一部分、命令行的參數和文件夾名。所以,name不能含有非URL安全的字符。

幾個建議:webpack

  • 不要使用已存在的name做爲包名。
  • 不要在name中使用"js"和"node",這會假定這是js文件,一旦你寫一個package.json文件,你就能夠在"engines"字段中指定解釋器引擎。
  • name字段可能會被做爲傳輸傳遞給require()函數,所以它最好是簡短的、自描述的。
  • 你可能會須要在深刻開發一個包以前先檢查npm的registry來確認某個name是否被使用過,能夠參考https://www.npmjs.com/。

一個name能夠用scope來指定一個前綴,好比@myorg/mypackage,能夠參考npm-scope。ios

  1. version:包的當前版本號,遵照「大版本.次要版本.小版本」的格式。
  2. description:是幫助使用者瞭解包的功能的字符串,包管理器也會把這個字符串做爲搜索關鍵詞。
  3. author:做者信息
{
  "author": {//能夠是一個對象,也能夠用下面的字符串表示
    "name": "Your Name",
    "email": "you@example.com",
    "url": "http://your-website.com"
  },
  "author": "Your Name <you@example.com> (http://your-website.com)"
}
複製代碼
  1. private:發佈,若是你不想你的包發佈到包管理器,設置爲 true。
  2. scripts:指定了運行腳本命令的npm命令行縮寫,這些命令運行在包的各個生命週期中。npm run start時執行的就是npm run dev,執行npm run build時執行的就是node build/uatbuild.js。若是沒有寫start,start 腳本的默認值爲 node server.js。
  3. dependencies字段,devDependencies字段。dependencies字段指定了項目運行所依賴的模塊,devDependencies指定項目開發所須要的模塊,在本地開發時要用到,到了線上不須要。 對應版本的限制:
  • 指定版本:好比1.2.2,遵循「大版本.次要版本.小版本」的格式規定,安裝時只安裝指定版本。
  • 波浪號+指定版本:好比~1.2.2,表示安裝1.2.x的最新版本(不低於1.2.2),可是不安裝1.3.x,也就是說安裝時不改變大版本號和次要版本號。
  • 插入號+指定版本:好比ˆ1.2.2,表示安裝1.x.x的最新版本(不低於1.2.2),可是不安裝2.x.x,也就是說安裝時不改變大版本號。須要注意的是,若是大版本號爲0,則插入號的行爲與波浪號相同,這是由於此時處於開發階段,即便是次要版本號變更,也可能帶來程序的不兼容。
  • latest:安裝最新版本。
  1. engines:字段指明瞭該模塊運行的平臺,好比 Node 的某個版本或者瀏覽器。該字段也能夠指定適用的npm版本。
  2. main:字段指定了模塊的入口程序文件,main字段指定了加載的入口文件,require('moduleName')就會加載這個文件。這個字段的默認值是模塊根目錄下面的index.js。
  3. keywords:關鍵字是一個字符串數組,當在包管理器裏搜索包時頗有用
  4. bin:bin項用來指定各個內部命令對應的可執行文件的位置。因爲node_modules/.bin/目錄會在運行時加入系統的PATH變量,所以在運行npm時,就能夠不帶路徑,直接經過命令來調用這些腳本
"bin": {
  "someTool": "./bin/someTool.js"
}
scripts: {  
  start: './node_modules/someTool/someTool.js build'
}
// 簡寫爲
scripts: {  
  start: 'someTool build'
}
複製代碼
相關文章
相關標籤/搜索