AOT 构建尝试从 @types 而不是实际模块导入
AOT build trying to import from @types instead of actual module
尝试从 auth0-js 包向 DI 容器添加服务时,构建会尝试从 node_modules/@types/auth0-js/index.js
目录而不是 node_modules/auth0-js/index.js
加载 index.js
文件.
[21:50:57] 'build.bundles.app.aot' errored after 784 ms
[21:50:57] Error on fetch for @types/auth0-js/index.js at file:///Users/llwt/src/testing/angular-seed-advanced/node_modules/@types/auth0-js/index.js
Loading dist/tmp/web.module.ngfactory.js
Loading dist/tmp/main.web.prod.js
Error: ENOENT: no such file or directory, open '/Users/llwt/src/testing/angular-seed-advanced/node_modules/@types/auth0-js/index.js'
at Error (native)
我觉得我一定是遗漏了一些基本的东西。我已经在 Nathan walker 的 Angular-Advanced-Seed 的分支中重现了这个问题,可以在 here.
中找到
正在像这样导入包:
import { WebAuth } from 'auth0-js';
// ...
export function authHttp() {
return new WebAuth({
domain: 'foo',
clientID: 'bar',
});
}
// ...
@NgModule({
//...
providers: [
{ provide: WebAuth, useFactory: (authHttp) },
// ...
如果我可以提供任何更具体的信息来帮助调试,请告诉我。
对于以后遇到这个问题的人来说,原来是 auth0-js
库的类型定义错误导致构建失败。
编辑: 对于现在正在查看此内容的任何人。问题仍然存在,正在 this Definitely Typed issue.
中进行跟踪
我遇到了同样的问题..
不久:
这个问题不知何故是由您的 WebAuth 的 DI 引起的。
您必须像这样初始化 WebAuth:
import { WebAuth } from 'auth0-js'
class AuthService {
auth0 = new WebAuth(config);
constructor(private otherDependency: OtherDependency) {}
}
这会使您在测试中模拟 WebAuth 变得复杂。
我可以通过 Jest 简单地模拟它:
beforeEach(() => {
require('auth0-js').WebAuth = function() {
return webAuthMock;
};
});
尝试从 auth0-js 包向 DI 容器添加服务时,构建会尝试从 node_modules/@types/auth0-js/index.js
目录而不是 node_modules/auth0-js/index.js
加载 index.js
文件.
[21:50:57] 'build.bundles.app.aot' errored after 784 ms
[21:50:57] Error on fetch for @types/auth0-js/index.js at file:///Users/llwt/src/testing/angular-seed-advanced/node_modules/@types/auth0-js/index.js
Loading dist/tmp/web.module.ngfactory.js
Loading dist/tmp/main.web.prod.js
Error: ENOENT: no such file or directory, open '/Users/llwt/src/testing/angular-seed-advanced/node_modules/@types/auth0-js/index.js'
at Error (native)
我觉得我一定是遗漏了一些基本的东西。我已经在 Nathan walker 的 Angular-Advanced-Seed 的分支中重现了这个问题,可以在 here.
中找到正在像这样导入包:
import { WebAuth } from 'auth0-js';
// ...
export function authHttp() {
return new WebAuth({
domain: 'foo',
clientID: 'bar',
});
}
// ...
@NgModule({
//...
providers: [
{ provide: WebAuth, useFactory: (authHttp) },
// ...
如果我可以提供任何更具体的信息来帮助调试,请告诉我。
对于以后遇到这个问题的人来说,原来是 auth0-js
库的类型定义错误导致构建失败。
编辑: 对于现在正在查看此内容的任何人。问题仍然存在,正在 this Definitely Typed issue.
中进行跟踪我遇到了同样的问题..
不久:
这个问题不知何故是由您的 WebAuth 的 DI 引起的。
您必须像这样初始化 WebAuth:
import { WebAuth } from 'auth0-js'
class AuthService {
auth0 = new WebAuth(config);
constructor(private otherDependency: OtherDependency) {}
}
这会使您在测试中模拟 WebAuth 变得复杂。 我可以通过 Jest 简单地模拟它:
beforeEach(() => {
require('auth0-js').WebAuth = function() {
return webAuthMock;
};
});