当前位置: 首页 > 后端技术 > Node.js

npm包中的package.json文件

时间:2023-04-03 14:32:06 Node.js

先看node包中当前的package.json文件配置{"name":"webpack-learn",//包名一般使用破折号或者下划线,不是推荐"version":"1.0.0",//版本"description":"vuewebpack","main":"dist/main.js","module":"dist/main.js","scripts":{"dev":"webpack-dev-server--progress--configbuild/webpack.config.dev.js--inline--hot","build":"webpack--progress--configbuild/webpack.config.prod.js",},"keywords":["webpackinitproject","webpack","initProject","vue"],"engines":{"node":">=6"//节点环境要求},"author":"cpp","license":"ISC","homepage":"https://github.com/niaogege/webpack-learn",//项目介绍主页"repository":{"type":"git","url":"https://github.com/niaogege/webpack-learn.git"},"files":["dist","src","public"],"dependencies":{"vue":"^2.6.12"},"devDependencies":{"babel-core":"^6.26.3","babel-loader":"^8.2.2","clean-webpack-plugin":"^3.0.0",.。vue源代码“main”中的package.json是这样定义的:“dist/vue.runtime.common.js”,//运行时的通用版本“module”:“dist/vue.runtime.esm.js”,//运行时的es版本如果不定义main,需要在项目中使用依赖包引用constVueLoaderPlugin=require('vue-loader/lib/plugin.js');在vue-loader中看这个文件的export定义constwebpack=require('webpack')letVueLoaderPlugin=nullif(webpack.version&&webpack.version[0]>4){//webpack5和upperVueLoaderPlugin=require('./plugin-webpack5')}else{//webpack4及以下VueLoaderPlugin=require('./plugin-webpack4')}module.exports=VueLoaderPlugindevDependencies/dependencies运行--save-dev或-D安装的插件,它们是写入devDependencies域,并使用--save或-Sinstalledplugins,它被写入dependencies块。npminstall[插件名称]或npminstall[插件名称]--save属于dependencies,即代码运行时需要的包npminstall[插件名称]--save-dev属于devDependencies,即开发时依赖的插件(即不会在线打包)。dependencies,生产环境依赖,即dependencies会被打包到web中,使用过的devDependencies,开发环境依赖,不会被打包,这是保证web能够运行的基础。区别:假设你是一个npm包的开发者,那么你发布的包的package.json需要仔细区分依赖包是dependencies还是devDependencies。因为你发布的包是给别人用的,别人不会关心你用什么环境开发的,别人要的是最终开发出来的源码。因此,安装别人的npm命令时:npminstallxxx-D只会下载xxx中的依赖包,不会下载devDependencies中的包。所以在发布npm包的时候,一定要严格区分dependencies和devDependencies!!文件很容易理解。下载的依赖包中包含的文件名数组就像我的cpp-cli-testnpm包中的文件一样。是files:["dist","src","public"]因为不想上传npm包中的node_modules文件,所以这里只包含三个文件夹。bin字段将在开发脚手架时使用。打包命令,如cpp-V,"main":"./bin/index.js","bin":{"cpp":"./bin/index.js"//全局注册cpp命令},参考toLinkMain属性在package.json中定义包入口点package.jsondependencies和devDependencies的区别