首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让系统an忽略导入

如何让系统an忽略导入
EN

Stack Overflow用户
提问于 2016-05-24 03:40:50
回答 1查看 1.5K关注 0票数 3

-这是针对systemjs库的,而不是systemjs-builder

我这里可能有个小案子。但我正在尝试设置我的前端web应用程序,以便在命令行中运行它的单元测试。我的安装程序目前构建到系统寄存器格式的类型记录,并根据它们的规范将加载导入到站点。我目前面临的问题是,我的依赖项reflect-metadata有一个节点自动检测系统,它进行require('crypto')调用,这是一个本机节点模块(在npm中不可用)。我收到的错误是:

错误: ENOENT:没有这样的文件或目录,打开'/Users/path/to/project/node_modules/crypto.js‘

这里有很多我理解的东西,但是我想要系统as完全忽略require('crypto')调用,并允许它通过完全不变的方式,因为节点将在运行时正确地加载这个调用。

由于我们正在创建的多模块企业应用程序,由于接收Systemjs版本的子依赖关系,我实际上没有将类型记录导出到commonjs的自由,而不是临时的commonjs构建。(要做到这一点,唯一的办法就是在我们的私人npm构建中包括公共版本,这是远远不够理想的)

下面是我为系统使用的当前配置,因为我一直试图让系统忽略密码库的要求。我把它保持在正确的状态--当上面的错误生成时,注释以及所有这些,这样您就可以看到我尝试过的内容。

代码语言:javascript
复制
System.config({
  defaultJSExtensions: true,
  map: {
    'angular2': 'node_modules/angular2',
    'reflect-metadata': 'node_modules/reflect-metadata/Reflect',
    'crypto': 'node_modules/crypto'
  }
  // packages: {
  //   'reflect-metadata': {
  //     format: 'global',
  //     exports: 'Reflect',
  //     defaultExtension: false,
  //     meta: {
  //       '*': {
  //         defaultExtension: false
  //       }
  //     }
  //   }
  // }
  // meta:{
  //   'reflect-metadata/Reflect':{
  //     format: 'global',
  //     exports: 'Reflect',
  //     defaultExtension: false
  //   }
  // }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-16 08:42:46

若要忽略需求,可以将其映射到@empty配置文件中的SystemJS模块。您可以通过添加System.config({ map: { 'crypto': '@empty' } })来做到这一点

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37403990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档