-这是针对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构建中包括公共版本,这是远远不够理想的)
下面是我为系统使用的当前配置,因为我一直试图让系统忽略密码库的要求。我把它保持在正确的状态--当上面的错误生成时,注释以及所有这些,这样您就可以看到我尝试过的内容。
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
// }
// }
});发布于 2016-06-16 08:42:46
若要忽略需求,可以将其映射到@empty配置文件中的SystemJS模块。您可以通过添加System.config({ map: { 'crypto': '@empty' } })来做到这一点
https://stackoverflow.com/questions/37403990
复制相似问题