vue-cli3中App.vue和main.js引用public.scss的问题

public.scss:

.hello {
    .world {
        color:red;
    }
}

main.js:

import '@/assets/style/public.scss';

App.vue:

@import url('~@/assets/style/public.scss');

问题:

  1. 在App.vue引入public.scss样式属性不生效,不支持嵌套结构,支持普通CSS结构。
  2. 在main.js引入public.scss样式属性生效,支持嵌套结构

想知道为什么?

阅读 5.2k
3 个回答

import '@/assets/style/public.scss';
这是ES6的语法,会经过wepack打包处理

@import url('~@/assets/style/public.scss');
这是css的语法,不会经过scss-loader,所以不支持嵌套

可以尝试在App.vue 的 <script> 标签中引入
import '@/assets/style/public.scss';

1楼说的基本正确。不过不建议在 <stype> 标签里引入,直接在 <script>import 即可。

顺便说下,尽快升级到 @vue/cli@4 吧,主要为了使用 core-js@3。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题