如果一个 npm 包附带多个 dist 文件夹,我如何知道在构建我的应用程序时使用了哪个?
If an npm package ships with multiple dist folders, how do I know which one is used when my App is built?
我在我的应用程序中使用了一个 npm 包 (aurelia-google-maps
)。该软件包附带 AMD、System、CommonJS、Native Modules 和 ES2015 dist 文件夹,如下所示:
/node_modules/
/aurelia-google-maps/
/dist/
/amd
/system
/native-modules
/es2015
/commonjs
在我的打字稿应用程序中,我只是导入所有 类 并作为:
import {Configure} from "aurelia-google-maps"
有什么方法可以让我在构建应用程序时找出使用的是哪个发行版?
我认为如果没有构建工具的帮助,您无法确定它。可以分两步完成:
- 使用 type of 检查运行时代码中变量的可用性:
const distType = typeof DIST_TYPE !== 'undefined' ? DIST_TYPE : void 0;
- 配置构建工具以将
DIST_TYPE
替换为分发目标
然后您可以通过 distType
变量在普通代码中使用它。
对于打字稿,你只需要一个额外的声明
declare const DIST_TYPE: string | undefined;
我想通了。似乎 Aurelia 自动注册了它自己的名为 DistPlugin 的插件,该插件使用 native-modules
文件夹解析依赖关系。有关如何更改此行为的说明,请参阅 this wiki。
我在我的应用程序中使用了一个 npm 包 (aurelia-google-maps
)。该软件包附带 AMD、System、CommonJS、Native Modules 和 ES2015 dist 文件夹,如下所示:
/node_modules/
/aurelia-google-maps/
/dist/
/amd
/system
/native-modules
/es2015
/commonjs
在我的打字稿应用程序中,我只是导入所有 类 并作为:
import {Configure} from "aurelia-google-maps"
有什么方法可以让我在构建应用程序时找出使用的是哪个发行版?
我认为如果没有构建工具的帮助,您无法确定它。可以分两步完成:
- 使用 type of 检查运行时代码中变量的可用性:
const distType = typeof DIST_TYPE !== 'undefined' ? DIST_TYPE : void 0;
- 配置构建工具以将
DIST_TYPE
替换为分发目标
然后您可以通过 distType
变量在普通代码中使用它。
对于打字稿,你只需要一个额外的声明
declare const DIST_TYPE: string | undefined;
我想通了。似乎 Aurelia 自动注册了它自己的名为 DistPlugin 的插件,该插件使用 native-modules
文件夹解析依赖关系。有关如何更改此行为的说明,请参阅 this wiki。