package.json简介

  package.json在Node项目中用于描述项目的一些基本信息,以及依赖的配置,一般每一个Node项目的根目录下都有一个package.json文件。

  在项目的根目录中我们可以通过npm init来初始化一个package.json文件,其内容是一个Json对象,基本结构如下:

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

  package.json文件中包含了很多的属性,这些属性都是项目的一些基本信息以及一些配置信息,这里是一些更详细的信息,着重介绍一些我们经常用到的属性。

name main属性

  name和version属性是package.json文件两个不可或缺的属性,通常name属性和我们项目的文件名称是一样的,version表示这个项目的版本号。

  main属性指定了加载时的入口文件,当使用require()语法来加载一个模块时,就会查看package.json文件的main属性,main属性的属性值就是要加载的模块。

  在桌面新建一个文件夹(模块)命名为factory,在该文件夹内新建一个index.js文件,在index.js文件中写入以下代码:

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()要加载的文件:

  现在通过命令行进入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属性自动下载写入的依赖模块。

初学Node(二)package.json文件的更多相关文章

  1. node中 package.json 文件说明

    1.概述 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据).npm install命令根据这个配置文 ...

  2. node.js 中的package.json文件怎么创建?

    最近在用webstorm和nodejs做一些东西,老是各种混乱,今天上午创建一个新的项目,结果发现,npm init之后,并没有出现package.json,并没有太明确他的功能的小姑娘表示十分的惊慌 ...

  3. 通过node指令自动创建一个package.json文件,并封装发布使用

    通过node指令自动创建一个package.json文件,并封装发布使用:https://blog.csdn.net/scu_cindy/article/details/78208268

  4. node 通过指令创建一个package.json文件及npm安装package.json

    描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license项的 ...

  5. node 通过指令创建一个package.json文件

      描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license ...

  6. npm init node 通过指令创建一个package.json文件及npm安装package.json

    描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license项的 ...

  7. Nodejs package.json文件介绍

    每个npm的安装包里面都会包含一个package.json,通常这个文件会在包的根目录下. 这个文件很类似于.net项目中的.csproj+AssemblyInfo.cs+App.config文件,主 ...

  8. package.json文件配置信息

    1.概述 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据).npm install命令根据这个配置文 ...

  9. npm package.json文件解读

    每个Nodejs项目的根目录下面,一般都会有一个package.json文件.该文件可以由npm init生成,定义了项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据). pa ...

随机推荐

  1. js深拷贝和浅拷贝

    一.数组的深浅拷贝 在使用JavaScript对数组进行操作的时候,我们经常需要将数组进行备份,事实证明如果只是简单的将它赋予其他变量,那么我们只要更改其中的任何一个,然后其他的也会跟着改变,这就导致 ...

  2. IOS8Preview-xCode_6

    IOS8Preview-xCode_6 what's new What's new in xCode 6 Xcode 6 introduces a radically new way to desig ...

  3. SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework

    1.调用前组装参数 2.调用发送信息服务脚本   .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...

  4. linux rdate

    检查服务器时间,发现服务器时间与当前时间错了很多.于是调整. 使用ntpdate ,不管如何设置,包括关闭防火期,设置ntp.conf,结果都不成功. 随即使用网上提供的另外一种方法,临时先解决一下燃 ...

  5. 文本框不够长,显示“XXX...”

    WPF: How to make the TextBox/TextBlock/Label show "xxx..." if the text content too long? 设 ...

  6. ios录制测试

    http://support.smartbear.com/viewarticle/64016/

  7. ionic 添加应用图标与启动页

    由于手机有很多不同的尺寸与版本,所以图标尺寸也是大小不一,但是如果手动每一个尺寸都制作一个图标,那估计美工会吐血吧,不过幸好,ionic只需要一个图标就可以制作不同尺寸的图标. 添加一个ionic项目 ...

  8. jQuery 1.9 Ajax代码带注释

    /* -----------ajax模块开始 -----------*/ var // Document location ajaxLocParts, ajaxLocation, ajax_nonce ...

  9. 《HelloGitHub月刊》第02期

    <HelloGithub>第02期 兴趣是最好的老师,而<HelloGitHub> 就是帮你找到兴趣! 因为我比较熟悉python语言,所以月刊中python语言的项目居多,个 ...

  10. onhashchange事件,只需要修改hash值即可响应onhashchange事件中的函数(适用于上一题下一题和跳转页面等功能)

    使用实例: 使用onhashchange事件做一个简单的上一页下一页功能,并且当刷新页面时停留在当前页 html: <!DOCTYPE html><html><body& ...