Javascript Angular2的外部网页2
我正在创建一个Angular2库,所以我想将Angular2定义为外部依赖 阅读关于这个主题的文档(这是稀缺的),我希望以下内容能够起到作用:Javascript Angular2的外部网页2,javascript,webpack,Javascript,Webpack,我正在创建一个Angular2库,所以我想将Angular2定义为外部依赖 阅读关于这个主题的文档(这是稀缺的),我希望以下内容能够起到作用: externals: { 'moment': 'moment', '@angular/core': '@angular/core' } // or externals: ['moment', '@angular/core'] 但这会为@angular/core生成一个错误,因为webpack会生成以下无效javascript: modu
externals: {
'moment': 'moment',
'@angular/core': '@angular/core'
}
// or externals: ['moment', '@angular/core']
但这会为@angular/core生成一个错误,因为webpack会生成以下无效javascript:
module.exports = @angular/core;
我是否误解了应该如何使用externals
?获取有效javascript的唯一方法是使用有效标识符,如下所示:
externals: {
'moment': 'moment',
'@angular/core': 'mySpecialLittleUnicorn'
}
但显然,这个图书馆永远不会存在。我的库用户是否应该为“@angular/core”或其他东西定义别名“mySpecialLittleUnicorn”(如何定义?)
这应该是如何工作的。Webpack支持多种格式,以便在构建模块后需要使用这些格式。例如,为了支持commonjs,您可以将前缀commonjs添加到外部(或者将您自己的库设置为导出为commonjs)
output.libraryTarget:“commonjs2”
或
externals:{'@angular/core':'commonjs@angular/core'}
但是,要支持所有模块类型并为所有模块类型导出自己的库,最好的方法是为所有类型声明外部以及为所有类型构建自己的库
所有类型的外部:
'@angular/core': {root: ['ng', 'core'], commonjs: '@angular/core', commonjs2: '@angular/core', amd: '@angular/core'},
为所有类型导出您自己的生成: