我正在尝试切换< link />的href.出于主题目的,SCSS主题位于我的monorepo的packages文件夹中,这些文件夹在node_modules中进行符号链接.我需要能够编译和引用这些.

我遇到了以下固定问题:angular/angular-cli#3401并且一直试图实现类似的东西:

"styles": [
    "styles.scss",{
        "input": "../node_modules/@org/themes/dark.scss","output": "dark","lazy": true
    }
],

我的理解(也许是不正确的)是这会将dark.scss文件编译成dist / dark.bundle.css并且我可以通过http://localhost:4200/dist/dark.bundle.css加载它但是它没有按预期工作.我误解了某些事情或完全错误吗?

如何编译node_modules中的SCSS文件,然后我可以在应用程序中延迟加载?我可以尝试另一种/更好的方法吗?

补充说明:

>使用Angular版本4.2.4
>使用Angular CLI 1.3.0版
> documentation for this approach
>我在monorepo工作,所以node_modules / @ org / themes是一个符号链接
>我已尝试使用ng serve –preserve-symlinks选项,以防出现上述问题.它没有任何区别

我已经调查了Angular Material docs website approaches this problem的方式,看起来他们有一个自定义构建脚本,在服务应用程序之前将SCSS文件编译为assets目录中的CSS文件.我认为上面修复的问题消除了对这一步的需要,但也许没有.这是唯一可行的方法吗?

解决了

感谢@Kuncevic.我错过了–extract-css标志.

工作配置:

"styles": [
    "styles.scss",{
        "input": "../node_modules/@org/themes/src/dark.scss","output": "themes/dark",

使用以下服务脚本,我可以通过http://localhost:4200/themes/dark.bundle.css访问它:

ng serve –extract-css –preserve-symlinks

通过设置“lazy”:true意味着它不会出现在index.html中,但是没有机制可以为您延迟加载该捆绑包,请检查 comment:

The lazy option doesn’t actually lazy load anything. It just prevents
it from being executed on application startup.

我同意“懒惰”:真的有点令人困惑.

如果您运行ng build,您实际上可以看到在构建中输出的内容并分析cli生成的所有文件.

当你这样做时:

{
    "input": "../node_modules/@org/themes/dark.scss","lazy": true
}

您应该能够直接在http://localhost:4200/dark.bundle.js访问您的文件,但它不会出现在index.html中,因为您设置了“lazy”:true

If you want to get dark.bundle.css bundle instead of
dark.bundle.js in dev mode you can use --extract-css flag.

cli在开发模式下生成样式到js包的原因是因为这种方式更快.当你按照ng buld -prod生成prod时,它会默认输出到.css.

使用Angular CLI延迟加载应用程序主题样式的更多相关文章

  1. ios – 如果app bundle不包含推送通知中收到的“loc-key”的密钥怎么办?

    根据appledocumentation,通知有效载荷可以携带“loc-key”键,其识别appbundle中的本地化字符串键.如果应用程序包中没有这样的密钥会发生什么情况?

  2. ios – 强制本地化内部框架,如UIKit,无需重启App

    我必须在应用程序中添加一个切换语言的选项.我只是坚持本地化内部framworks.任何人都可以帮助我从应用程序本身的内部框架本地化,如UIKit等,而无需重新启动.我的代码工作正常,但对于内部框架的情况需要重新启动.只是内部框架没有得到本地化.我目前的代码是:创建一个名为BundleExtension.swift的文件,并将以下代码添加到其中–现在,无论何时需要更改语言,都可以调用此方法:解决方法

  3. ios – 如何在Xcode 7中自动化UI测试期间访问本地化字符串?

    所以我必须先转换它才能知道它在使用NSLocalizedString之前的原因:有没有简单的方法来解决Xcode中的这个问题?如果可能的话,我不想在我的代码中使用这些无意义的字符串,很难知道它是什么.或者我必须编写一个脚本来处理这个问题?

  4. ios – 无法启动iPhone模拟器

    /Library/Developer/CoreSimulator/Devices/530A44CB-5978-4926-9E91-E9DBD5BFB105/data/Containers/Bundle/Application/07612A5C-659D-4C04-ACD3-D211D2830E17/ProductName.app/ProductName然后,如果您在Xcode构建设置中选择标准体系结构并再次构建和运行,则会产生以下结果:dyld:lazysymbolbindingFailed:Symbol

  5. xcode – 打开模块的导入文件:权限被拒绝

    我在另一台计算机上设置了一个远程Git存储库和XcodeServer,然后在Xcode中创建了一个bot.每次我尝试进行新的集成时,都会失败并出现如下错误:如果我评论此文件中的所有内容,bot会开始为另一个框架(以及另一个.swift文件)显示相同的错误.它可以是Swift或Objective-C框架.此项目的搜索路径为:$(PROJECT_DIR),并且“始终搜索用户路径”设置为“是”我正在使用

  6. ios – SKLabelNode延迟应用程序启动

    目前我正在使用SpriteKit编写一个小应用程序,它工作得非常好,但唯一的问题是SKLabelNode,我使用以下正常代码初始化:还有很多东西可以初始化,但它们不会影响任何东西.如果我注释掉上面的代码,应用程序会在平时加载.使用SKLabelNode,它可以将负载延迟几秒钟……

  7. ios – 如何在不使用单独的捆绑包的情况下将我的资源文件包含在框架中?

    解决方法为什么不想为框架使用单独的bundle?

  8. ios – 如何向settings.bundle添加本地化?

    我的应用支持两种语言.当我添加一个设置包时,它只有英文版.在Xcode6.1中,我发现无法向Settings.bundle添加本地化.我错过了什么?解决方法不过我找到了一个有效的解决方1)打开Settings.bundle包2)创建新文件夹de.lproj3)将Root.strings从en.lproj-folder复制到de.lproj-folder4)现在您可以在Xcode中编辑新语言

  9. ios – 如何在Settings.bundle中的xCode中添加额外的积分,以便与InAppSettingsKit iPhone库一起使用?

    这可能是一个非常愚蠢的问题.但我正在努力:我正在尝试添加一个Root.inApp.plist文件到我的项目,以便我可以为我的iPhone应用程序具有特定的设置.我已经集成了InAppSettingsKit,它目前只使用一个Root.plist文件.我想添加一个Root.inApp.plist文件到我的项目,以便我可以具有特定的设置.当我尝试在Xcode中添加另一个属性文件时,它似乎不属于Settings.bundle,我该如何让它显示在我的Settings.bundle结构中呢?

  10. ios – 我可以隐藏/禁用Settings.bundle中的字段吗?

    我的Settings.bundle的Root.plist中有几个文本字段项.我需要所有的应用程序,但我希望其中一个被用户隐藏或不可编辑.例如.当用户将iPhone上的设备–>MyApp,我想要其中一个字段不可见,或禁止编辑.这可能吗?解决方法你当然可以.只需将项目类型更改为标题.你仍然可以从代码中保存和读取它的价值.但它不会出现在应用程序中.设置.

随机推荐

  1. Angular2 innerHtml删除样式

    我正在使用innerHtml并在我的cms中设置html,响应似乎没问题,如果我这样打印:{{poi.content}}它给了我正确的内容:``但是当我使用[innerHtml]=“poi.content”时,它会给我这个html:当我使用[innerHtml]时,有谁知道为什么它会剥离我的样式Angular2清理动态添加的HTML,样式,……

  2. 为Angular根组件/模块指定@Input()参数

    我有3个根组件,由根AppModule引导.你如何为其中一个组件指定@input()参数?也不由AppModalComponent获取:它是未定义的.据我所知,你不能将@input()传递给bootstraped组件.但您可以使用其他方法来做到这一点–将值作为属性传递.index.html:app.component.ts:

  3. angular-ui-bootstrap – 如何为angular ui-bootstrap tabs指令指定href参数

    我正在使用角度ui-bootstrap库,但我不知道如何为每个选项卡指定自定义href.在角度ui-bootstrap文档中,指定了一个可选参数select(),但我不知道如何使用它来自定义每个选项卡的链接另一种重新定义问题的方法是如何使用带有角度ui-bootstrap选项卡的路由我希望现在还不算太晚,但我今天遇到了同样的问题.你可以通过以下方式实现:1)在控制器中定义选项卡href:2)声明一个函数来改变控制器中的散列:3)使用以下标记:我不确定这是否是最好的方法,我很乐意听取别人的意见.

  4. 离子框架 – 标签内部的ng-click不起作用

    >为什么标签标签内的按钮不起作用?>但是标签外的按钮(登陆)工作正常,为什么?>请帮我解决这个问题.我需要在点击时做出回复按钮workingdemo解决方案就是不要为物品使用标签.而只是使用divHTML

  5. Angular 2:将值传递给路由数据解析

    我正在尝试编写一个DataResolver服务,允许Angular2路由器在初始化组件之前预加载数据.解析器需要调用不同的API端点来获取适合于正在加载的路由的数据.我正在构建一个通用解析器,而不是为我的许多组件中的每个组件设置一个解析器.因此,我想在路由定义中传递指向正确端点的自定义输入.例如,考虑以下路线:app.routes.ts在第一个实例中,解析器需要调用/path/to/resourc

  6. angularjs – 解释ngModel管道,解析器,格式化程序,viewChangeListeners和$watchers的顺序

    换句话说:如果在模型更新之前触发了“ng-change”,我可以理解,但是我很难理解在更新模型之后以及在完成填充更改之前触发函数绑定属性.如果您读到这里:祝贺并感谢您的耐心等待!

  7. 角度5模板形式检测形式有效性状态的变化

    为了拥有一个可以监听其包含的表单的有效性状态的变化的组件并执行某些组件的方法,是reactiveforms的方法吗?

  8. Angular 2 CSV文件下载

    我在springboot应用程序中有我的后端,从那里我返回一个.csv文件WheniamhittingtheURLinbrowsercsvfileisgettingdownloaded.现在我试图从我的角度2应用程序中点击此URL,代码是这样的:零件:服务:我正在下载文件,但它像ActuallyitshouldbeBook.csv请指导我缺少的东西.有一种解决方法,但您需要创建一个页面上的元

  9. angularjs – Angular UI-Grid:过滤后如何获取总项数

    提前致谢:)你应该避免使用jQuery并与API进行交互.首先需要在网格创建事件中保存对API的引用.您应该已经知道总行数.您可以使用以下命令获取可见/已过滤行数:要么您可以使用以下命令获取所选行的数量:

  10. angularjs – 迁移gulp进程以包含typescript

    或者我应该使用tsc作为我的主要构建工具,让它解决依赖关系,创建映射文件并制作捆绑包?

返回
顶部