Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular2的外部网页2_Javascript_Webpack - Fatal编程技术网

Javascript Angular2的外部网页2

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

我正在创建一个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'},
为所有类型导出您自己的生成: