详情参考npm-package.json 👈🏻javascript
npm install
依赖当前文件// ⚠️代码块一 -package.json // * 必有 { "name": " name-is-test", // *项目名称【<214字节, ❌“. _”开头, ❌大写字母(依赖包和name),❌非URL安全字符(最终成为URL的一部分), ❌ 包含“js node”】 "version": "0.0.1", // *项目版本号-大版本.次要版本.小版本 "author": "xinxin", // 项目做者 "description": "第一个node.js程序", // 项目描述 【npm search 便于搜寻】 "keywords":["node.js","javascript"], // 关键字/标签 【npm search 便于搜寻】 "private": "false", // 非私有 "repository": { // 代码存储仓库 "type": "git", "url": "https://path/to/url" }, "license":"MIT", // 许可证 ⚠️详见下license 许可证 "engines": { // 指定模块运行的平台/浏览器的版本号 "node": "0.10.x", "npm": "~1.0.2" }, "bugs":{ // bug日志 "url":"https://github.com/owner/project/issues", "email":"bug@example.com" }, "contributors":[ // 参与贡献者 { "name":"李四", "email":"lisi@example.com" } ], "scripts": { // npm 命令行简写 详见原文🔗http://caibaojian.com/npm/misc/scripts.html "start": "node server.js", // server.js 是运行脚本 // "build": "./node_modules/bin/someTool.js build", "build": "someTool build" // bin字段 }, "dependencies": { //⚠️ 项目运行依赖的模块 "express": "latest", "mongoose": "3.8.3", "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0" "express3-handlebars": "~0.5.0", "asd" : "http://asdf.com/asdf.tar.gz" "MD5": "^1.2.0", "two" : "2.x", "thr" : "3.3.x", "dyl" : "file:../dyl" }, "devDependencies": { // ⚠️ 项目开发须要的模块 "bower": "~1.2.8", "grunt": "~0.4.1", "grunt-contrib-concat": "~0.3.0", "grunt-contrib-jshint": "~0.7.2", "grunt-contrib-uglify": "~0.2.7", "grunt-contrib-clean": "~0.5.0", "browserify": "2.36.1", "grunt-browserify": "~1.3.0", }, "peerDependencies": { // 当项目依赖与引入模块插件依赖为同一依赖且版本号不一样时,能够在用户安装不符合条件的/低版本的依赖时进行提示 ⚠️ npm 3.0+ 不会默认安装 peerDependencies "chai": "1.x" }, "optionalDependencies": { // 当某个依赖包没法找到或者安装或者打包失败仍会继续执行下去 }, "bundledDependencies": [ // 能够下载(压缩包)依赖包到本地或经过单个文件下载依赖包并执行 npm pack "renderized", "super-streams" ], "bin": { // 用来指定各个内部命令对应的可执行文件的位置 "someTool": "./node_modules/bin/someTool.js", // script 字段 }, "main": "index.js", // 指定加载的入口文件,⚠️当开发者 required("name-is-test"), 使用的是index.js文件返回的对象 "homepage": "http: xxx", // 当前项目入口url "config": { // ⚠️ 脚本文件 server.js 能够引用config字段的值--执行脚本时,详见代码块二,用户更改config详见代码块三 // 详见原文🔗http://caibaojian.com/npm/misc/config.html "port": "8080" }, "publishConfig": { // 发布参数配置如下皆为默认值,其他参数详见 config 指向连接👆 "tag": "latest", // "1.1.1" -> 开发者在安装依赖未指定版本号时则会安装tag指定的版本号 "registry": "https://registry.npmjs.org", // npm包注册表的基本URL "access": "restricted", // public-公开可见可下载,没有明确做用域的包同常具备public的访问级别 }, "browser": { // 指定该模板供浏览器使用的版本。 //Browserify这样的浏览器打包工具,经过它就知道该打包那个文件。 "tipso": "./node_modules/tipso/src/tipso.js" }, "os" : [ "darwin", "linux" ], // 指定模块运行平台 ["!linux" ]✔️ "cpu" : [ "x64", "ia32" ], // 指定cpu型号 "files": ["./doc/aaa"], // 安装包被安装时所包含的全部文件,不填写时则会发布除了不被发布的文件或其余被忽略文件的全部文件,默认且必定不被发布⚠️文件详见下文 "man": ["./doc/calc.1"], // 没搞懂详见原文🔗(http://caibaojian.com/npm/files/package.json.html#man) "preferGlobal": true, // 用户安装模块时不为全局时发出警告 false-不警告 "style": ["./node_modules/tipso/src/tipso.css"] // 供浏览器使用时,指定样式文件的位置,样式文件打包工具parcelify,经过它知道样式文件的打包位置。 } // ⚠️代码块二 -serve.js http .createServer(...) .listen(process.env.npm_package_config_port) // ⚠️代码块三 -命令行 npm config set test:port 8000 // test为项目名称
限定其余开发者使用当前项目(包)的使用方式
{ "license": "UNLICENSED" }
不准可,== private": true
{ "license" : "BSD-3-Clause" }
公共许可证【BSD-2-Clause或MIT】,可添加SPDX许可的标识符【⚠️OSI Approved】👈{ "license" : "(ISC OR GPL-3.0)" }
多个许可声明方法{ "license" : "SEE LICENSE IN <filename>" }
自定义许可证,⚠️根目录下建立<filename>文件1.1.1
-大版本.次要版本.小版本~1.1.2
-【波浪号】安装1.1.x的最新版本(不低于1.1.2)^0.1.2
-【插入号】⚠️安装0.1.x的最新版本(不低于0.1.2-大版本号为0表明处于开发阶段,同 ~
相同规则^1.1.2
-【插入号】安装1.x.x的最新版本(不低于1.1.2)latest
-安装最新版本package.json
README
CHANGES
/ CHANGELOG
/ HISTORY
LICENSE
/ LICENCE
NOTICE
main
" field.git
CVS
.svn
.hg
.lock-wscript
.wafpickle-N
.*.swp
.DS_Store
._*
npm-debug.log
.npmrc
node_modules
config.gypi
*.orig
package-lock.json
(use shrinkwrap instead)npm init [--yes] // --yes 跳过问题
npm set init.author.email "test@gmail.com" npm set init.author.name "test" npm set init.license "MIT"
⚠️若是已执行init,再作set设置能够删除package.json以后从新init(谨慎使用,若是设置不少,不肯定会不会丢失设置)css
script
配置命令行npm run [script-key] // 执行命令 npm run // 查看可执行命令
安装依赖html
npm install
-安装package.json中全部依赖模块npm install xxx --save
-安装xxx模块并写入dependencies模块npm install xxx --save-dev
-安装xxx模块并写入devDependencies模块若有问题,欢迎指出👏 🙋🏻java