npm start运行项目过程package.json字段详解

目录
  • 正文
    • 项目名称
    • 项目版本号
    • 项目介绍
    • 执行命令
      • 1 包配置安装npm install(npm i)
      • 2 打包项目 npm run build
      • 3 运行项目 npm run dev
    • 存储库
    • 关键词
    • bugs
    • homepage

正文

在js项目运行时,通常输入npm start,即可运行,其运行过程如下:

npm start首先会安装一系列的必要程序,这些程序依赖package.json中的内容, package.json里默认定义了项目名称、项目版本号、项目介绍、项目作者、执行命令、生产环境要安装的包、开发环境要安装的包、引擎版本、浏览器的限制要求。

项目名称

"name": "webgpu-seed",

项目版本号

"version": "0.1.0",

项目介绍

"description": " A simple hello triangle example introducing WebGPU.",

"main": "dist/main.js",

执行命令

 "scripts": {
        "start": "npm i && npm run build && npm run dev",
        "dev": "http-server",
        "build": "cross-env NODE_ENV=production ts-node webpack.ts"
    },
"init": "npm i",
"start": "npm run dev && npm run server",
"dev": "webpack --config build/webpack.dev.js --watch",
"server": "http-server",
"build": "webpack main.js main1.js",
"prod":"webpack  --config build/webpack.prod.js"

package.json文件中的字段script的每一个属性都是一个自定义的脚本命令,需要通过npm来执行。

npm run命令都是定义在package.json文件的scripts节点里面的。

npm run dev就是执行package.json中的scripts中的dev中的脚本;

npm run build就是执行package.json中的scripts中的build中的脚本;

npm run start 就是执行package.json中的scripts中的start中的脚本,也可简写 npm start;

(有4个可简写的命令npm start、npm stop、npm test、npm restart)

npm start实际上运行的是:npm i && npm run build && npm run dev

webpack --config 中--config (必须)用法

将现有的webpack.dev.js文件名修改为webpack.dev.config.js

1 包配置安装npm install(npm i)

(1)开发环境中的包只有在开发环境用

"devDependencies": {
        "@types/node": "^16.6.x",
        "@webgpu/types": "^0.1.6",
        "clean-webpack-plugin": "^3.0.x",
        "cross-env": "^7.0.x",
        "http-server": "^13.0.x",
        "ts-loader": "^9.2.x",
        "ts-node": "^10.2.x",
        "typescript": "^4.3.x",
        "webpack": "^5.51.x"
},

比如我们在开发时用的是es6语言,开发环境有一个包,作用是在打包时把es6的语言转成es5的语言,那么打包后,在生产环境的代码是已经转成es5的代码,就不需要再转码了,所有也就不需要这个包了。

(2)生产环境的包在开发和生产都要使用

"dependencies": {
        "gl-matrix": "^3.3.0"
    }

如果是像echart(做图形的)的包,就是开发和生产环境都需要,所以要放在生产环境的包配置里。

如果已经知道想安装的包的版本,可以直接在package.json的 "dependencies" 或  "devDependencies"中配置好,直接运行npm install就行。npm install会检查package.json中有哪些包没被安装,进行安装,已安装的包不会再进行安装。

(3)npm i 是npm install的简写.

  • 用npm i安装的模块无法用npm uninstall删除,用npm uninstall i才卸载掉
  • npm i会帮助检测与当前node版本最匹配的npm包版本号,并匹配出来相互依赖的npm包应该提升的版本号
  • 部分npm包在当前node版本下无法使用,必须使用建议版本
  • 安装报错时intall肯定会出现npm-debug.log 文件,npm i不一定

2 打包项目 npm run build

执行打包时, npm run build相当于执行package.json中的scripts中的build属性的脚本,就是执行cross-env NODE_ENV=production ts-node webpack.ts

(1)cross-env是跨平台设置和使用环境变量的脚本

cross-env NODE_ENV=production设置环境变量为生产环境

(2)ts-node webpack.ts

运行webpack.ts(tsconfig.json对项目做一些约束的)

3 运行项目 npm run dev

npm run dev 就是执行package.json 里的scripts的dev属性的脚本

http-server是开启一个本地服务

存储库

项目存储在git仓库

"repository": {
        "type": "git",
        "url": "git+https://github.com/alaingalvan/webgpu-seed.git"
    },

关键词

项目中技术的关键词

"keywords": [
        "webgpu",
        "webgl",
        "example",
        "seed",
        "types",
        "typescript"
    ],

作者 "author": "Alain Galvan",

许可证 "license": "Unlicense",

bugs

问题讨论

"bugs": {
        "url": "https://github.com/alaingalvan/webgpu-seed/issues"
    },

homepage

"homepage": "https://github.com/alaingalvan/webgpu-seed#readme",

好了,介绍结束了,最重要的就是script节点中的内容,其他的节点类型介绍。

{
    "name": "webgpu-seed",
    "version": "0.1.0",
    "description": " A simple hello triangle example introducing WebGPU.",
    "main": "dist/main.js",
    "scripts": {
        "start": "npm i && npm run build && npm run dev",
        "dev": "http-server",
        "build": "cross-env NODE_ENV=production ts-node webpack.ts"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/alaingalvan/webgpu-seed.git"
    },
    "keywords": [
        "webgpu",
        "webgl",
        "example",
        "seed",
        "types",
        "typescript"
    ],
    "author": "Alain Galvan",
    "license": "Unlicense",
    "bugs": {
        "url": "https://github.com/alaingalvan/webgpu-seed/issues"
    },
    "homepage": "https://github.com/alaingalvan/webgpu-seed#readme",
    "devDependencies": {
        "@types/node": "^16.6.x",
        "@webgpu/types": "^0.1.6",
        "clean-webpack-plugin": "^3.0.x",
        "cross-env": "^7.0.x",
        "http-server": "^13.0.x",
        "ts-loader": "^9.2.x",
        "ts-node": "^10.2.x",
        "typescript": "^4.3.x",
        "webpack": "^5.51.x"
    },
    "dependencies": {
        "gl-matrix": "^3.3.0"
    }
}

以上就是npm start运行项目过程package.json字段详解的详细内容,更多关于npm start运行package.json字段的资料请关注我们其它相关文章!

(0)

相关推荐

  • package.json与package-lock.json的区别及详细解释

    目录 package.json package-lock.json 两者区别: package-lock.json的作用 补充:关于package-lock.json的详细解释 总结 package.json 记录当前项目所依赖模块的版本信息,更新模块时锁定模块的大版本号(版本号的第一位),不能锁定后面的小版本, package-lock.json package-lock.json 是在 `npm install`时候生成一份文件.记录了node_modules目录下所有模块(包)的名称.版本

  • 高级前端必会的package.json字段知识详解

    目录 概览 name name命名规范 不安全的URL字符 私源npm包怎么命名? version description keywords homepage repository license author contributors files main bin scripts dependencies.devDependencies.peerDependencies private publishConfig types module unpkg sideEffects 注意点 engin

  • package.json管理依赖包版本详解

    目录 npm版本号定义 package.json怎么识别依赖版本 不要太相信npm包的版本号 dependencies.devDependencies与peerDependencies dependencies devDependencies peerDependencies 参考 npm版本号定义 版本格式:X.Y.Z[-string]其含义为: X:主版本号 Y:次版本号 Z:修正版本号 string: 先行版本号或版本编译信息 举个例子: 6.3.2-alpha的含义为: 主版本号6,有6

  • package.json依赖环境相关属性详解

    目录 引言 一.package.json 1. package.json简介 2. package-lock.json 二.package.json常用属性 1. script 2. bin 3. workspaces 三.package.json环境相关属性 1 type 2 main & module & browser 3 exports 四.package.json依赖相关属性 1 peerDependencies 2 peerDependenciesMeta 五.package.

  • Node中node_modules文件夹及package.json文件的作用说明

    目录 node_modules文件夹及package.json文件的作用 package.json的作用 生成的package.json文件 node_modules是干什么的? modules(模块) node加载模块的方法 node_modules文件夹及package.json文件的作用 在我们下载了npm或gulp的一些插件后,打开node_modules可以发现,里面有很多的文件夹,会导致我们将项目拷贝给别人的时候,传输速度会很慢. 其实我们在拷贝给别人项目的时候,node_modul

  • npm start运行项目过程package.json字段详解

    目录 正文 项目名称 项目版本号 项目介绍 执行命令 1 包配置安装npm install(npm i) 2 打包项目 npm run build 3 运行项目 npm run dev 存储库 关键词 bugs homepage 正文 在js项目运行时,通常输入npm start,即可运行,其运行过程如下: npm start首先会安装一系列的必要程序,这些程序依赖package.json中的内容, package.json里默认定义了项目名称.项目版本号.项目介绍.项目作者.执行命令.生产环境

  • 你可能不知道的package.json属性详解

    目录 概述 name version description keywords homepage bugs license 和用户相关的属性:author,contributors files main bin man directories directories.lib directories.bin directories.man directories.doc directories.example repository scripts config dependencies URLsa

  • 利用yarn代替npm管理前端项目模块依赖的方法详解

    本文主要给大家介绍了关于yarn代替npm管理前端项目模块依赖的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 什么是 yarn? 简单来说,yarn 是一个与 npm 功能相同的工具,用于前端项目的依赖管理.在使用 npm 的项目中,使用 npm 命令的地方都可以使用 yran 来代替. 为什么要使用 yarn 替代 npm 呢?yarn 相对 npm 来说,主要的特点有: 离线.并行安装:依赖并行安装,缓存已下载过的依赖并优先使用,各种优化使得安装依赖速度显著提升

  • 如何让node运行es6模块文件及其原理详解

    最新版的 node 支持最新版 ECMAScript 几乎所有特性,但有一个特性却一直到现在都还没有支持,那就是从 ES2015 开始定义的模块化机制.而现在我们很多项目都是用 es6 的模块化规范来写代码的,包括 node 项目,所以,node 不能运行 es6 模块文件就会很不便. 让 node 运行 es6 模块文件的方式有两种: 转码 es6 模块为 commonjs 模块 hook node 的 require 机制,直接让 node 的 require 加载 import/expor

  • Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++的教程详解(Windows)【真正的小白版】

    写在前面的前面:这篇文章vscode和cpp插件版本有点老了,仅供大家参考,最新的和最详细的更新见我的另一篇文章: https://www.jb51.net/article/183154.htm 写在前面: 由于这学期(或者说这一年)一直在忙别的,也没什么闲心看博客了,近期发现自己的这篇文章:整理:Visual Studio Code (vscode) 配置C.C++环境/编写运行C.C++(Windows)竟然有了好多访问,也有不少童鞋问各种问题,非常感谢大家的支持,本来是自己整理的没想到有这

  • Vite多环境配置项目高定制化能力详解

    目录 业务背景 多环境场景的业务形态 Vite多环境方案实现 多模式文件配置 自定义环境变量 Vite默认环境变量 通过插件透传环境变量 客户端环境差异定制 效果图 解决的业务场景思考 业务背景 近些年来,随着前端工程架构发展,使得前端项目中也能拥有如后端工程的模块能力.正所谓 “能力(越)越大(来),责任(越)越大(卷)”,现在的前端工程不仅仅要满足业务需求,还伴随更多复杂的环境适配问题,例如: api请求的域名会根据不同环境而不同: 线上环境和测试环境在打包策略有所不同「如线上要隔离sour

  • Go开发Gin项目添加jwt功能实例详解

    目录 啥是JWT 为什么要用在你的Gin中使用JWT JWT的基本原理 JWT TOKEN怎么组成 Header Base64URL Payload Signature 解密过程 一些特点(优点和缺点) GIN整合JWT 编写jwtutil GenToken方法 ParseToken方法 编写中间件 使用中间件 测试 其他 啥是JWT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场

  • Vue项目接入Paypal实现示例详解

    一.支付流程 在paypal的官网上给出了这个按钮内部封装的流程,整个流程只需要用户点击按钮,触发创建订单事件,然后我们再监听用户支付成功的回调,拿到订单id传给后端,让后端再进行一次校验. 二.实现方案 接入方式 优点 缺点 相关资料 在html中插入paypal的script脚本 实现方式比较简单 1.安全性问题:公司的client_id会暴露在代码中 2.引用的按钮样式比较难自定义 官方文档:https://developer.paypal.com/docs/checkout/integr

  • Java程序执行过程及内存机制详解

    本讲将介绍Java代码是如何一步步运行起来的,其中涉及的编译器,类加载器,字节码校验器,解释器和JIT编译器在整个过程中是发挥着怎样的作用.此外还会介绍Java程序所占用的内存是被如何管理的:堆.栈和方法区都各自负责存储哪些内容.最后用一小块代码示例来帮助理解Java程序运行时内存的变化. Java程序执行过程 步骤 1: 写源代码,源代码将以.java的文件格式保存在电脑硬盘中. 步骤 2: 编译器(compiler)检查是否存在编译期错误(例如缺少分号,关键字拼写错误等).若通过检测,编译器

随机推荐