我想在我的应用程序中有一条路线,我可以在其中列出应用程序中的所有现有路线。我在 Angular 9 中使用 Ivy 并使用动态导入进行延迟加载。
该应用程序有一些延迟加载的模块。该路由将在根模块中声明。但是此时router.config只包含“根”路由,而懒惰的路由有一个 loadChildren()` 方法,可以动态导入模块。
我尝试过这样的事情:角度 8 中的延迟加载模块,但无法使其适用于路线。路由器实例似乎没有更新。
查看路由器的源代码,我已经成功加载了lazy模块并使用configLoader的load方法获取了子路由
(<any> this.router).configLoader.load(this.injector, route).subscribe({
next: (moduleConf) => {
children.push(...moduleConf.routes.map((childRoute) => childRoute.path));
}
})
Run Code Online (Sandbox Code Playgroud)
它运行良好,但我使用了 的configLoader属性,Router它是一个私有属性。所以这对未来来说不是一个好主意:)
我制作了一个堆栈闪电战,您可以在其中查看/测试代码。该组件还有一个loadConfOld()方法,该方法尝试使用moduleFactory.
我怎样才能以适当和持久的方式做我想做的事?预先感谢您的帮助。
我想用 webpack 4 打包一个 javascript 项目,但我正在努力处理 CSS 文件。我捆绑的 JS 文件将被其他网站使用带有绝对 URI 的脚本标签。所以我希望我的包为样式表注入链接标签,以便管理文件名中的哈希。
我的样式源是一个scss文件。当我使用它时效果很好,style-loader但我想在其他文件中提取 CSS。
我尝试了以下方法webpack.config.js:
const miniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
mode: 'development',
module: {
rules: [
{
test: /\.scss$/,
use: [
miniCssExtractPlugin.loader,
'css-loader',
'sass-loader']
}
]
},
plugins: [
new miniCssExtractPlugin({
filename: '[name].[hash].css',
}),
]
};
Run Code Online (Sandbox Code Playgroud)
它在输出目录中创建我的 CSS 文件,但加载程序不会像那样将它注入到 DOMstyle-loader中。而且我不能style-loader在mini-css-extract-plugin.
我无法使用,html-webpack-plugin因为没有 HTML 输出文件。有没有办法用现有的装载机做我想做的事?有没有办法在JS中获取提取的文件url来自己创建链接标签?
我的 devDependencies :
{
// ...
"devDependencies": {
"css-loader": "^3.3.2",
"mini-css-extract-plugin": …Run Code Online (Sandbox Code Playgroud)