Twitter bootstrap 如何在Vaadin 14应用程序中包含自定义SASS文件?

Twitter bootstrap 如何在Vaadin 14应用程序中包含自定义SASS文件?,twitter-bootstrap,maven,sass,vaadin,vaadin14,Twitter Bootstrap,Maven,Sass,Vaadin,Vaadin14,我正在Maven上开发一个Vaadin 14应用程序,因此我使用的是Vaadin Maven插件,根据Vaadin的v14入门应用程序: 负责同步package.json和main.js文件中的java依赖项和导入。如果还不存在,它还会创建webpack.config.js 运行应用程序后,我得到了根目录上的package.json文件和节点模块。我随后执行了npm安装引导程序,并在src/main/webapp/frontend/中创建了一个自定义的SCSS文件,其中包含一些精选的@impor

我正在Maven上开发一个Vaadin 14应用程序,因此我使用的是
Vaadin Maven插件
,根据Vaadin的v14入门应用程序:

负责同步package.json和main.js文件中的java依赖项和导入。如果还不存在,它还会创建webpack.config.js

运行应用程序后,我得到了根目录上的
package.json
文件和
节点模块。我随后执行了
npm安装引导程序
,并在
src/main/webapp/frontend/
中创建了一个自定义的SCSS文件,其中包含一些精选的
@import
指令,以获得我自己的引导程序构建

Vaadin关于SCSS的文档中没有提到任何关于SCSS的内容如何让Vaadin的Maven插件编译我的SCSS文件,以便将生成的CSS文件导入我的应用程序?

在vaadins中提到

Vaadin 14本身并没有使用Sass,但如果您愿意,当然可以将其用于您自己的应用程序主题化。您必须自己设置sass编译器工作流,但是有Maven插件可用于此

经过快速搜索,我发现这可能会做你需要的;在打包之前,将sass/scss文件编译为css

正如评论中指出的那样,还有一个问题


我自己还没有使用过这个插件(等我有时间的时候,我会尝试使用),所以我不能告诉你如何最好地配置这个插件。但我确信,一旦配置正确,这就是将SCSS/SASS与Vaadin 14一起使用的方法。

根据@Kaspar Scherrer的回答,我能够生成一个自定义的Twitter引导版本,通过执行以下步骤将其作为CSS包含在我的Vaadin 14应用程序中:

  • 通过npm包含引导的源Sass和JavaScript文件,在项目根目录中的CLI上运行
    npm install Bootstrap

  • 在我的项目的
    pom.xml
    上设置:

  • 
    com.gitlab.haynes
    libsassmaven插件
    0.2.21
    产生资源
    编译
    ${basedir}/src/main/webapp/frontend/sass/
    ${basedir}/node_模块/
    ${basedir}/src/main/webapp/frontend/css/
    真的
    
  • inputPath
    上设置的目录内创建了自定义SASS文件,在本例中名为
    webapp bootstrap.scss
  • html{
    框大小:边框框;
    -ms溢出样式:滚动条;
    }
    *,
    *::之前,
    *::之后{
    框大小:继承;
    }
    //必需的
    @导入“引导/scss/函数”;
    @导入“bootstrap/scss/variables”;
    @导入“引导/scss/mixins/breakpoints”;
    @导入“bootstrap/scss/mixins/clearfix”;
    @导入“bootstrap/scss/mixins/deprecate”;
    @导入“bootstrap/scss/mixins/grid framework”;
    @导入“bootstrap/scss/mixins/grid”;
    @导入“bootstrap/scss/mixins/hover”;
    @导入“bootstrap/scss/mixins/screen reader”;
    @导入“bootstrap/scss/mixins/text emphasis”;
    @导入“bootstrap/scss/mixins/text hide”;
    @导入“bootstrap/scss/mixins/text truncate”;
    //可选的
    @导入“bootstrap/scss/grid”;
    @导入“引导/scss/utilities/align”;
    @导入“bootstrap/scss/utilities/clearfix”;
    @导入“引导/scss/utilities/display”;
    @导入“bootstrap/scss/utilities/flex”;
    @导入“bootstrap/scss/utilities/float”;
    @导入“引导/scss/utilities/position”;
    @导入“引导/scss/utilities/screenreaders”;
    @导入“引导/scss/utilities/sizing”;
    @导入“引导/scss/utilities/spacing”;
    @导入“bootstrap/scss/utilities/text”;
    
  • 通过使用注释
    @StyleSheet(“css/webapp bootstrap.css”)
    在我的应用程序中包含生成的样式表

  • 我不知道vaadin maven插件。但您可以使用下面的插件,并通过适当的目标和阶段设置自动执行几乎所有操作@Kasper Scherrer,谢谢你给我指明了正确的方向。您提到的Maven插件的github存储库已经存档:“3.7.2版可能是这个插件的最终版本,也是最后一个版本,因为(Ruby)Sass已经到了生命的尽头。”我搜索了更多内容,并使用了中列出的LibSass Maven插件。请用此插件的引用更新您的答案,以便我可以接受。在中编辑。但是我注意到最新版本的libsass-maven插件比最新版本的sass-maven插件要老一年。我两个都没试过,所以说不出哪一个更好。一旦我亲自尝试,我会更新这个答案。你得到了错误的libsass maven插件,它是从你添加的版本中派生出来的,并且有更新的版本。感谢你发布确认它工作的帖子,以及对插件的配置。我想说你已经赢得了接受自己答案的机会,我不介意;)干杯。谢谢你的启发:)