Vue进阶(七):走近 package.json

2024-02-16 19:38

本文主要是介绍Vue进阶(七):走近 package.json,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、初步理解
    • 二、进一步理解
    • 三、拓展阅读


一、初步理解

  1. npm安装package.json时 直接转到当前项目目录下用命令npm installnpm install --save-dev安装即可,自动将package.json中的模块安装到node-modules文件夹下。
  2. package.json 中添加中文注释会编译出错。
  3. 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install 命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
  4. package.json文件可以手工编写,也可以使用npm init命令自动生成。

注意:npm init 时,用户需回答一些问题,然后在当前目录生成一个基本的package.json文件。所有问题之中,只有项目名称(name)和项目版本(version)是必填的,其他都是选填的。

二、进一步理解

以下是根据创建vue项目的时候 npm init自动生成的package.json做详细的理解。

  1. 下面是最简单的的一个package.json 文件(只有两个数据,项目名称和项目版本,他们都是必须的,如果没有就无法install
{"name": "kocla_test","version": "1.0.0",
}
  1. scripts

指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。

下面的设置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint时,所要执行的命令。

"scripts": {"dev": "node build/dev-server.js","build": "node build/build.js","unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run","test": "npm run unit","lint": "eslint --ext .js,.vue src test/unit/specs"},
  1. dependencies,devDependencies

dependenciesdevDependencies两项,分别指定了项目运行、开发所需要的模块。它们都指向一个对象,该对象的各个成员,分别由模块名和对应的版本要去组成,表示依赖的模块及其版本范围

  • --save参数表示将该模块写入dependencies属性,
  • --save-dev表示将该模块写入devDependencies属性。
"dependencies": {"vue": "^2.2.2","vue-router": "^2.2.0"},"devDependencies": {"autoprefixer": "^6.7.2","babel-core": "^6.22.1","babel-eslint": "^7.1.1","babel-loader": "^6.2.10","babel-plugin-transform-runtime": "^6.22.0","babel-preset-env": "^1.2.1","babel-preset-stage-2": "^6.22.0","babel-register": "^6.22.0","chalk": "^1.1.3",
}

注:

  • devDependencies下的依赖包,只是我们在本地或开发坏境下运行代码所依赖的,若发布到线上,其实就不需要devDependencies下的所有依赖包;(比如各种loaderbabel全家桶及各种webpack的插件等)只用于开发环境,不用于生产环境,因此不需要打包;
  • dependencies是我们线上(生产坏境)下所要依赖的包,比如vue,我们线上时必须要使用的,所以要放在dependencies下;dependencies依赖的包不仅开发环境能使用,生产环境也能使用。
  • 所谓开发环境,就是指开发阶段,比如webpackgulp这些工具,都只是在开发阶段需要,一旦项目真正投入使用,便不再依赖这些插件,所以将其安装在devDependencies即可;
  • 生产环境,则表示项目真正投入使用时,此时仍然需要依赖的插件则需要安装在dependencies中,比如vuevue-routerjQuery这些,dependencies中没有这些插件,项目真实使用时就会出错。
  1. config字段

config字段用于向环境变量输出值。

{  "name" : "foo",  "config" : { "port" : "8080" },  "scripts" : { "start" : "node server.js" }  
}  
  1. engines 字段
    指明了该项目所需要的node.js版本。
 "engines": {"node": ">= 4.0.0","npm": ">= 3.0.0"},
  1. bin

许多包有一个或多个可执行文件希望被安装到系统路径。在npm下要这么做非常容易(事实上,npm就是这么运行的)。

这需要在package.json中提供一个bin字段,它是一个命令名和本地文件名的映射。在安装时,如果是全局安装,npm将会使用符号链接把这些文件链接到prefix/bin,如果是本地安装,会链接到./node_modules/.bin/

比如,要使用myapp作为命令时可以这么做:

{ "bin" : { "myapp" : "./cli.js" } }

当安装myapp,npm会从cli.js文件创建一个到/usr/local/bin/myapp的符号链接(这使你可以直接在命令行执行myapp)。

三、拓展阅读

  • 参考文档
  • 《Vue进阶(幺幺贰):package-lock.json 文件解析》

这篇关于Vue进阶(七):走近 package.json的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/715525

相关文章

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,