【问题标题】:How do I correct the css compile order with webpack in Vuejs?如何在 Vuejs 中使用 webpack 更正 css 编译顺序?
【发布时间】:2017-09-23 12:38:34
【问题描述】:

我在使用 vue-cli 项目的 Webpack 2 中遇到了关于 css 编译顺序的问题。

在 main.js 中,我导入了一个名为 skeleton.css 的 css 库文件。这包括<a> 颜色样式。

import Vue from 'vue'
import App from './App'
import router from './router'
import 'skeleton-css/css/skeleton.css'

在App.vue中,我设置<a>颜色样式如下

<style lang="scss">
    a {
        text-decoration: none;
        color: #2c3e50;
    }
</style>

当我编译代码并打开 chrome 检查器时。我发现错误的订单插入样式。

<style type="text/css">....</style> // App.vue inline style
<style type="text/css">....</style> // skeleton.css style

我的 webpack 2 配置与 vue-cli

{
    test: /\.scss$/,
    use: [{
        loader: "style-loader"
    }, {
        loader: "css-loader"
    }, {
        loader: "sass-loader"
    }]
}

如何调整正确的导入样式顺序?

【问题讨论】:

    标签: javascript webpack vuejs2


    【解决方案1】:

    您需要在main.js 中重新排序imports,因为它是唯一会影响生成的DOM 中&lt;style&gt; 标记顺序的因素:

    import 'skeleton-css/css/skeleton.css'
    import Vue from 'vue'
    import App from './App'
    import router from './router'
    

    现在skeleton.css 是第一位的,其他的都会在它之后。

    【讨论】:

    • 这是一种标准的结构方式吗?
    • @tommychoo 没有“标准的结构方式”。它只是(希望)解决了您解释的特定问题。
    • 谢谢,但看起来有些奇怪。
    • @tommychoo 怎么样?如果你想让骨架先出现 - 你把它放在第一位。老实说,我不明白为什么它会让你感到惊讶:-)
    • 您必须小心不要使用任何重新排序导入的自动格式化程序。或者不小心自己重新排序。
    猜你喜欢
    • 1970-01-01
    • 2012-12-25
    • 2013-08-14
    • 2020-11-03
    • 2020-12-22
    • 2017-12-12
    • 2020-05-24
    • 2018-08-23
    • 2019-05-03
    相关资源
    最近更新 更多