关于npm?世界上最大的软件注册中心。所有开源开发者都使用npm来共享和借用包,许多组织也使用npm来管理私有开发。npm包含三个不同的组件(不同的组件):websites:用于查找开源包CommandLineInterface(CLI):用于与npm服务器交互的终端,开发人员常用registry:大型Javascript软件公共数据库相关元信息参考LINK.npmignore放置在根目录或子目录中,以防止包含指定文件。如果放在根目录下,package.json中的files字段不会被覆盖,如果放在子目录下,files字段会被覆盖。工作方式同.gitignore。如果已经有.gitignore而没有.npmignore,那么将应用.gitignore中的内容。package.json#files中列出的文件不能被.npmignore或.gitignore排除(避免)。它将被包含,无论你是否在文件中设置它:package.jsonREADME[任何后缀,任何大小写]CHANGES/CHANGELOG/HISTORYLICENSE/LICENCENTICE“main”字段中的文件[package.json中main字段指向的条目。json文件]相反,下面的文件往往被设置为忽略。-lock.json(改用shrinkwrap)package.json组成一个包发布到registry必须包含package.json文件。目的:方便他人管理、安装和使用。Contains:lists列出自你的项目以来的所有包,包括开发依赖:devDependencies,生产依赖:dependencies。Specifyingthespecificpackageversionthatyouneedwhenusingsemanticversionrulesinyourprojectmakesyourbuildreproducible,andthereforeeasiertosharewithotherdevelopers(makeyourbuildrepeatable,soitiseasiertosharewithotherdevelopers)其他描述信息,例如as:description描述:让你的包更容易在网站上获取配置和使用环境变量varspackage.json中的字段会以npm_package_为前缀,成为环境变量,如:npm_package_name,npm_package_version//configurationport"config":{"port":8080}//通过npm运行脚本后,程序所在运行时可以访问这个npm变量,如:console.log(process.env.npm_package_config_port);//8080//如果此时发现8080端口被占用,如何在不修改package.json文件的情况下修改端口?修改项目路径下的终端(需要指定项目名称)npmconfigsetmy_project_name:port9090//查看全局变量console.log(process.env);//{...}//如果不指定项目名称,npmconfiguration后缀为np??m_confignpmconfigsetcolorfalse//查看npmconfiggetcolor//false//访问console.log(process.log)env.npm_config_color);//false可配置的属性如下:npm如何处理脚本?npmrun-script
