Angular npm package.json未记录的密钥

Angular npm package.json未记录的密钥,angular,npm,module,ecmascript-6,package.json,Angular,Npm,Module,Ecmascript 6,Package.json,我在Angular 2/4的源代码package.json中看到一些未记录的键: { "name": "@angular/platform-browser/animations", "typings": "../animations.d.ts", "main": "../bundles/platform-browser-animations.umd.js", "module": "../@angular/platform-browser/animations.es5.js",

我在Angular 2/4的源代码package.json中看到一些未记录的键:

{
  "name": "@angular/platform-browser/animations",
  "typings": "../animations.d.ts",
  "main": "../bundles/platform-browser-animations.umd.js",
  "module": "../@angular/platform-browser/animations.es5.js",
  "es2015": "../@angular/platform-browser/animations.js"
}
特别是“模块”和“es2015”。我在Angular的包裹里都找到了。我很好奇他们是如何决定加载“main”、“modules”还是“es2015”,特别是因为它总是加载“module”(而不是“es2015”模块)。有没有办法强制我的项目使用package.json中的es2015文件?

关于字段

  • 打字
    -打字脚本类型签名
  • module
    -根据最初的提案,它应该指向具有
    ES2015
    模块语法但仅具有目标环境支持的语法功能的模块。出于某种原因使用
    .es5
    es6
    aka
    ES2015
  • es2015
    -未转换的ES6代码。由Angular引入(不知道任何支持它的工具)
有关非官方package.json字段的更多信息,请参见本文

有没有办法强制我的项目使用package.json中的es2015文件

不确定您使用的是哪个捆绑机和/或transpiler。如果您正在使用Webpack,则可以使用
resolve.mainFields

module.exports = {
   resolve: {
       mainFields: ['es2015', 'browser', 'module', 'main'],
   },
   ···
};