繁体   English   中英

Angular2的Webpack2外部

[英]Webpack2 externals for Angular2

我正在创建Angular2库,因此我想将Angular2定义为外部依赖项。

阅读有关此主题的文档(该文档很少),我希望以下内容能起作用:

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'},

导出所有类型的您自己的构建: 请参阅此SO答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM