【发布时间】:2017-12-17 02:26:29
【问题描述】:
我是 vue/webpack 新手,在使用 vue-routing 的项目中找不到合适的方式来使用 scss 文件。
这是项目结构:
/src
/routes
route1.vue
route1.js
route2.vue
route2.js
...
/scss
main.scss
mixins.scss
route1.scss
route2.scss
...
main.js
index.html
route1.vue(和route2,脚本src除外)的代码是:
<template>
<div id="header">
<div class="title">{{title}}</div>
</div>
</template>
<script src="./route1.js"></script>
<style lang="scss">
@import "../scss/main";
</style>
main.js 管理路由(见教程)
当我通过 webpack 在开发模式下运行项目时,我发现每次加载路由组件时,在索引页面上,每个路由都会复制带有 main.scss 的所有内容的标记样式。
如何避免?
我应该将 scss 导入放在哪里以仅按时包含它? 我应该将路由包装在*组件中吗? (这似乎很复杂......)
我应该使用不同的方法吗? (我已经使用了很长时间的 grunt/angular,也许我正在尝试移植一个不适合这个工具的模式......)
【问题讨论】:
-
首先确保你安装了正确的 Webpack 加载器。阅读this 指南。然后在
.js文件之一中使用@import,例如main.js。最后在您的index.html中添加一个链接到创建的样式文件。 -
感谢您的回复,实际上我在阅读该指南后问了这个问题,主要是因为我不理解它并且它没有全面介绍使用 css 预处理器的管道.关于消息的第二部分,@import 是指在 javascript 中导入 scss 资源吗?关于index.html,链接应该指向哪里?
-
好的,我会尝试通过发布完整答案来澄清这一点。