npm start运行项目过程package.json字段详解
正文
在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字段的资料请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341