webpack build oidc-client 结果 Oidc.Usermanager is not a constructor
webpack build oidc-client results in Oidc.Usermanager is not a constructor
我有一个 angularjs 应用程序,我在其中运行 oidc-client。当我从 Visual Studio 启动我的 angularjs 应用程序时。我对 oidc-client 没有任何问题。一切正常。但是当我使用 Webpack 捆绑它时,它给了我一个奇怪的错误,说 Oidc.Usermanager 不是构造函数...
我是 运行 angularjs/angular .net 核心上的混合 angularjs/angular 应用程序。
我这样使用 WebpackDevMiddleware
app.UseWebpackDevMiddleware(new
Microsoft.AspNetCore.SpaServices.Webpack.WebpackDevMiddlewareOptions()
{
HotModuleReplacement = true,
ConfigFile = Path.Combine(env.ContentRootPath,
@"ClientApp\src\webpack.config.js"),
ProjectPath = Path.Combine(env.ContentRootPath, @"ClientApp\")
});
我有以下 oidc 客户端的 webpack 配置。我用的是1.9.0
版本
plugins: [
new HtmlWebpackPlugin({
template: './config/index.html'
}),
// new webpack.ProvidePlugin({
// foundation: 'foundation-sites/js/foundation/foundation'
// }),
new webpack.ProvidePlugin({
$: path.resolve(__dirname, './app-old/scripts/jquery-2.1.4.js'),
jQuery: path.resolve(__dirname, './app-old/scripts/jquery-2.1.4.js'),
"window.jQuery": path.resolve(__dirname, './app-old/scripts/jquery-
2.1.4.js')
}),
new webpack.ProvidePlugin({
Oidc: path.resolve('./src/app-old/scripts/oidc-client.js'),
"window.Oidc": path.resolve('./src/app-old/scripts/oidc-client.js')
}),
new webpack.ProvidePlugin({
toastr: 'toastr',
"window.toastr": "toastr"
})
这是给出错误的 oidc-client 代码
var config = {
authority: "http://localhost:52606/",
client_id: "js",
redirect_uri: "https://localhost:5001/#/",
response_type: "code",
scope: "openid profile",
post_logout_redirect_uri: "https://localhost:5001/",
automaticSilentRenew: true,
loadUserInfo: true
};
var mgr = new Oidc.UserManager(config);
这是我得到的错误
TypeError: Oidc.UserManager is not a constructor
at Object.eval (authService.js:42)
at Object.invoke (angular.js:4762)
at Object.enforcedReturnValue [as $get] (angular.js:4600)
at Object.invoke (angular.js:4762)
at eval (angular.js:4560)
at getService (angular.js:4707)
at injectionArgs (angular.js:4732)
at Object.invoke (angular.js:4754)
at Object.enforcedReturnValue [as $get] (angular.js:4600)
at Object.invoke (angular.js:4762)
没有 webpack 一切都很好。我错过了什么?
好的..这是我发现的。目前我使用的是 1.9.0 版本。
当我使用节点模块的 1.9.0 版时,oidc-client 文件以:
开头
var Oidc =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
但是当我转到 GitHub 并下载最新文件 https://github.com/IdentityModel/oidc-client-js/tree/dev/lib 时。它的
从以下代码开始。这段代码也适用于 webpack。
两者都是1.9.0版本。 :-S
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else {
var a = factory();
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
我有一个 angularjs 应用程序,我在其中运行 oidc-client。当我从 Visual Studio 启动我的 angularjs 应用程序时。我对 oidc-client 没有任何问题。一切正常。但是当我使用 Webpack 捆绑它时,它给了我一个奇怪的错误,说 Oidc.Usermanager 不是构造函数...
我是 运行 angularjs/angular .net 核心上的混合 angularjs/angular 应用程序。 我这样使用 WebpackDevMiddleware
app.UseWebpackDevMiddleware(new
Microsoft.AspNetCore.SpaServices.Webpack.WebpackDevMiddlewareOptions()
{
HotModuleReplacement = true,
ConfigFile = Path.Combine(env.ContentRootPath,
@"ClientApp\src\webpack.config.js"),
ProjectPath = Path.Combine(env.ContentRootPath, @"ClientApp\")
});
我有以下 oidc 客户端的 webpack 配置。我用的是1.9.0
版本plugins: [
new HtmlWebpackPlugin({
template: './config/index.html'
}),
// new webpack.ProvidePlugin({
// foundation: 'foundation-sites/js/foundation/foundation'
// }),
new webpack.ProvidePlugin({
$: path.resolve(__dirname, './app-old/scripts/jquery-2.1.4.js'),
jQuery: path.resolve(__dirname, './app-old/scripts/jquery-2.1.4.js'),
"window.jQuery": path.resolve(__dirname, './app-old/scripts/jquery-
2.1.4.js')
}),
new webpack.ProvidePlugin({
Oidc: path.resolve('./src/app-old/scripts/oidc-client.js'),
"window.Oidc": path.resolve('./src/app-old/scripts/oidc-client.js')
}),
new webpack.ProvidePlugin({
toastr: 'toastr',
"window.toastr": "toastr"
})
这是给出错误的 oidc-client 代码
var config = {
authority: "http://localhost:52606/",
client_id: "js",
redirect_uri: "https://localhost:5001/#/",
response_type: "code",
scope: "openid profile",
post_logout_redirect_uri: "https://localhost:5001/",
automaticSilentRenew: true,
loadUserInfo: true
};
var mgr = new Oidc.UserManager(config);
这是我得到的错误
TypeError: Oidc.UserManager is not a constructor
at Object.eval (authService.js:42)
at Object.invoke (angular.js:4762)
at Object.enforcedReturnValue [as $get] (angular.js:4600)
at Object.invoke (angular.js:4762)
at eval (angular.js:4560)
at getService (angular.js:4707)
at injectionArgs (angular.js:4732)
at Object.invoke (angular.js:4754)
at Object.enforcedReturnValue [as $get] (angular.js:4600)
at Object.invoke (angular.js:4762)
没有 webpack 一切都很好。我错过了什么?
好的..这是我发现的。目前我使用的是 1.9.0 版本。 当我使用节点模块的 1.9.0 版时,oidc-client 文件以:
开头var Oidc =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
但是当我转到 GitHub 并下载最新文件 https://github.com/IdentityModel/oidc-client-js/tree/dev/lib 时。它的 从以下代码开始。这段代码也适用于 webpack。 两者都是1.9.0版本。 :-S
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else {
var a = factory();
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};