package.json非官方字段合集package.json官方字段请参考https://docs.npmjs.com/files/package.json。以下为非官方字段,即各种工具定义的相关字段。1.Yarn相关领域yarn:类似npm的依赖管理工具,但是yarn会缓存每个下载的包,所以再次使用时不需要重新下载,并且采用并行下载的方式来最大化资源利用,所以安装速度更快。flat{"flat":true}如果您的包只允许给定依赖项的一个版本并且您希望在命令行上强制执行与yarninstall--flat相同的行为,请将此值设置为true。详细参考yarn-flat.resolutions{"resolutions":{"transitive-package-1":"0.0.29","transitive-package-2":"file:./local-forks/transitive-package-2","dependencies-package-1/transitive-package-3":"^2.1.1"}}允许您覆盖特定嵌套依赖项的版本。有关完整规范,请参阅选择性版本解析RFC。详见yarn-resolutions.2。unpkg相关字段unpkg:启用npm上的所有文件以启用cdn服务。unpkg#jquery{"unpkg":"dist/jquery.js"}一般情况下,通过https://unpkg.com/jquery@3.3.1/dist/jquery.js访问jquery的发布文件,当你使用omit时urlhttps://unpkg.com/jquery,将获取文件如下:#[latestVersion]指的是最新版本号,pkg指的是package.jsoncom/jquery@[latestVersion]/[pkg.unpkg]#当unpkg属性没有定义时,会回退到main属性https://unpkg.com/jquery@[latestVersion]/[pkg.main]为详细参考https://unpkg.com.3。TypeScript相关字段TypeScript:JavaScript类型的超集,typings{"main":"./lib/main.js","types":"./lib/main.d.ts"}like和main字段一样,定义TypeScript的入口文件。有关详细信息,请参阅TypeScript文档。4。browserslist相关领域browserslist:设置项目的浏览器兼容性。browserslist{"browserslist":[">1%","last2versions"]}支持的工具:AutoprefixerBabelpostcss-preset-enveslint-plugin-compatstylelint-no-unsupported-browser-featurespostcss-normalize参考browserslist.5。Release打包相关字段,点击Settingupmulti-platformnpmpackages查看相关介绍。module{"main":"./lib/main.js","module":"./lib/main.m.js"}就像main字段一样,定义了es6模块和语法的入口文件。在构建项目时,如果构建工具找到这个字段,它会首先使用这个字段指向的文件。如果未定义,它将回退到main字段指向的文件。支持的工具:rollupwebpack详细请参考rollup-pkg.module.browser{"main":"./lib/main.js","browser":"./lib/main.b.js"}指定浏览模块服务器使用的入口文件。如果此字段未定义,则回退到main字段指向的文件。支持的工具:rollupwebpackbrowserify详细参考babel-plugin-module-resolver.esnext{"main":"main.js","esnext":"main-esnext.js"}#or{"main":"main.js","esnext":{"main":"main-esnext.js","browser":"browser-specific-main-esnext.js"}}使用es模块化规范,stage4特性源码。详情请参考TranspilingdependencieswithBabel,Deliveringuntranspiledsourcecodevianpm.es2015{"main":"main.js","es2015":"main-es2015.js"}Angular定义了未转译的es6源码。详情请参考https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/edit#.esm详情请参考调整提案:ESmodule"esm":truepackage.jsonflag.6.react-native相关领域react-native:使用react组件技术编写原生APP。react-native{"main":"./lib/main.js","react-native":"./lib/main.react-native.js"}指定react要使用的这个模块的入口文件-本国的。如果此字段未定义,则回退到main字段指向的文件。查看源代码。7、webpack相关字段sideEffects{"sideEffects":true|false}声明模块是否包含sideEffects(副作用),可以为tree-shaking提供更多的优化空间。具体可以参考sideEffectsexample,proposalformarkingfunctionsaspure,eslint-plugin-tree-shaking.8。microbundle相关领域microbundle:基于rollup的零配置快速打包工具。source{"source":"src/index.js"}源文件入口文件。有关详细信息,请参阅在package.json.umd:main{"umd:main":"dist/main.umd.js"}umd模式捆绑文件中指定构建。有关详细信息,请参阅在package.json.8中指定构建。parcel相关字段parcel:零配置打包工具。请参阅源parcel-bundler/parcel#1652.9。babel相关字段babel:es6->es5转码器。babel配置babel。10.eslint相关领域eslint:js代码检查和优化。eslintConfig配置eslint。11.jest相关领域jest:js测试库。jest{"jest":{"verbose":true}}配置玩笑。有关详细信息,请参阅jestdocs.12。stylelint相关领域stylelint:样式代码检查和优化。stylelint配置stylelint。详见新建配置loader.13。ava相关领域ava:js测试库。ava{"ava":{"require":["@std/esm"]}}配置ava。详见ava配置.14。nyc相关字段nyc:istanbul.js命令行。nyc{"nyc":{"extension":[".js",".mjs"],"require":["@std/esm"]}}配置nyc。有关详细信息,请参阅nycdocs.15。CommonJS保留字段。保留字段:build、default、email、external、files、imports、maintainer、paths、platform、require、summary、test、using、downloads、uid。不可用字段:id、type、以_和$开头的字段。16.StandardJS相关领域StandardJS:js代码检查与优化。标准{“标准”:{“解析器”:“babel-eslint”,“忽略”:[“**/out/”,“/lib/select2/”,“/lib/ckeditor/”,“tmp.js"]}}配置标准。有关详细信息,请参阅https://standardjs.com/.17。其他样式声明当前模块包含样式部分并指定入口文件。支持的工具:parcelifynpm-lessrework-npmnpm-css详细参考Package.json的“style”属性,istf-spec.less和style一样,只是一个less文件。支持的工具:npm-less18。更多参考package.json字段说明.19。更多后续博文,查看https://github.com/senntyou/blogs作者:沈育之(@senntyou)版权声明:免费转载-非商业-非衍生-署名(CreativeCommons3.0License)
