npm package.json没有文档的密钥

问题描述 投票:3回答:1

我在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文件?

angular npm module ecmascript-6 package.json
1个回答
0
投票

关于领域

  • typings - TypeScript类型签名
  • module - 根据最初的提议,它应该指向具有ES2015模块语法的模块,但是只有目标环境支持的语法功能。角度由于某种原因使用.es5而不是es6又名ES2015
  • es2015 - 未翻译的ES6代码。由Angular引入(不知道任何支持它的工具)

有关非官方package.json字段的更多信息,请参阅此repository

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

不确定您使用的是哪个捆绑包和/或转换器。如果您使用的是Webpack,则可以使用resolve.mainFields进行配置

module.exports = {
   resolve: {
       mainFields: ['es2015', 'browser', 'module', 'main'],
   },
   ···
};
© www.soinside.com 2019 - 2024. All rights reserved.