初学Node(二)package.json文件
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文件的更多相关文章
- node中 package.json 文件说明
1.概述 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据).npm install命令根据这个配置文 ...
- node.js 中的package.json文件怎么创建?
最近在用webstorm和nodejs做一些东西,老是各种混乱,今天上午创建一个新的项目,结果发现,npm init之后,并没有出现package.json,并没有太明确他的功能的小姑娘表示十分的惊慌 ...
- 通过node指令自动创建一个package.json文件,并封装发布使用
通过node指令自动创建一个package.json文件,并封装发布使用:https://blog.csdn.net/scu_cindy/article/details/78208268
- node 通过指令创建一个package.json文件及npm安装package.json
描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license项的 ...
- node 通过指令创建一个package.json文件
描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license ...
- npm init node 通过指令创建一个package.json文件及npm安装package.json
描述包的文件是package.json文件. 一个这样的文件,里面的信息还是挺大的.我们可以放弃手动建立.为了练手我们有命令行来建一个这样的包; 完成name,varsion....license项的 ...
- Nodejs package.json文件介绍
每个npm的安装包里面都会包含一个package.json,通常这个文件会在包的根目录下. 这个文件很类似于.net项目中的.csproj+AssemblyInfo.cs+App.config文件,主 ...
- package.json文件配置信息
1.概述 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据).npm install命令根据这个配置文 ...
- npm package.json文件解读
每个Nodejs项目的根目录下面,一般都会有一个package.json文件.该文件可以由npm init生成,定义了项目所需要的各种模块,以及项目的配置信息(比如名称.版本.许可证等元数据). pa ...
随机推荐
- Form personization(Form 个性化)报无权限
总部的同事利用form personization对工单的一些Form做了个性化,发现可能设的有问题,造成用户无法关工单.想要看一下她是怎么设的,可报没权限.经过研究发现,把个人Profile 的 U ...
- ecshop的订单状态
ecshop的订单状态都是在ecs_order_info表中的字段里. 订单状态 未确认 取消 确认 已付款 配货中 已发货 已收货 退货 order_status 0 2 1 1 1 5 5 4 s ...
- Exploring Ionic Lists
Infinite Lists 由于手机不适合使用多页面显示posts,Infinite Lists成为各种新闻.咨询类app的标配.为了在ionic框架中使用到Infinite Lists,我们首先学 ...
- UIView的响应链
父视图 和子视图的关联 只有当父视图 userInteractionEnabled=YES; 是其子视图才可响应 userInteractionEnabled=NO代表不接受响应 UIView的默认 ...
- oracle 查询当前库中所有表以及某表字段信息
select utc.COLUMN_ID,utc.TABLE_NAME,utc.COLUMN_NAME,utc.DATA_TYPE||utc.DATA_LENGTH,utc.DATA_DEFAULT, ...
- Fiddler捕捉ASP.NET WebSite调用WebService、WCF服务
Fiddler默认会注册一个代理,有时会发现WebSite调用的WebService或者WCF服务无法被捕捉到.其实是由于运行的站点关联的应用程序池使用的账号和我们当前登陆操作系统的用户不同,自然它们 ...
- C# 128位AES 加密解密 (转)
/// AES加密 2 /// </summary> 3 /// <param name="inputdata">输入的数据 ...
- ExtJs TreePanel 使用帮助
tree :树 node:节点 1.全部展开 tree.expandAll(); 2.全部收缩 tree.collapseAll(); 3.得到父节点 node.parentNode 4.判断是否有父 ...
- 关于C# Math 处理奇进偶不进
话说,最近一次系统维护 用JS读取导入Excel中的实验数据,出现被自动四舍五入.后来到客户现场听客户反馈 Excel实验数据要求 奇进偶不进. 关于 奇进偶不进 产生的由来:从统计学的角度,“奇进 ...
- AngularJS的学习--TodoMVC的分析
最近一段时间一直在看AngularJS,趁着一点时间总结一下. 官网地址:http://angularjs.org/ 先推荐几个教程 1. AngularJS入门教程 比较基础,是官方Tutorial ...