在库名称中使用“ @”添加对外部的依赖性

时间:2019-09-25 19:30:23

标签: javascript webpack webpack-2 webpack-4

我正在使用ngx-build-plus使用一些webpack额外的配置来打包我的Angular元素。在我的webpack额外配置中,我想排除名称以“ @”开头的依赖项,例如@ angular / core。我知道@ angular / core可以通过将其映射到ng.core来排除,但是对于我要使用的库,我认为我不能使用ng链接它,因为它不是角度依赖性。我收到以下错误。

const webpack = require('webpack');
module.exports = {
  externals: {
    '@somelib/core': '@somelib/core' // Does not work
  }
};
Terser的main-es2015.js中的

错误 意外字符'@'[main-es2015.js:101,17]

1 个答案:

答案 0 :(得分:1)

在添加@ blueprintjs / core作为外部依赖项时,我遇到了同样的问题。 查看webpack生成的文件(在优化选项中使用minimum:false),问题似乎与导出有关:

module.exports = @blueprintjs/core;

将以下内容添加到我的webpack.config中:

    output: {
    // https://github.com/webpack/webpack/issues/1114
    libraryTarget: 'commonjs2'
  },

允许正确配置webpack产生的需求:

module.exports = require("@blueprintjs/core");

查看github issue并没有给我更多有关如何/为什么的信息,但我希望它能对其他人有所帮助