我在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文件?
关于领域
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'],
},
···
};