Parcel 默认支持 Stylus/Less/Sass, 只不过需要安装对应的npm依赖。官方文档言语模糊,我们这里便来实践一下具体如何开启tylus/Less/Sass。

支持 stylus

1
yarn add stylus --dev

如在 App.vue 同目录下新建style.styl 样式文件, 然后引入:

1
2
3
4
// template 和 script 内容略过
<style lang="stylus">
@import './style';
</style>

启动,会看到 Parcel 默认将样式文件内联到<head>标签中。

支持 less

1
yarn add less --dev

如在 App.vue 同目录下新建style.less 样式文件, 然后引入:

1
2
3
4
// template 和 script 内容略过
<style lang="less">
@import './style';
</style>

支持 sass

1
yarn add node-sass --dev

如在 App.vue 同目录下新建style.scss 样式文件, 然后引入:

1
2
3
4
// template 和 script 内容略过
<style lang="scss">
@import './style';
</style>

注意:上述如果启动失败,可以重装 babel-preset-env 依赖。

问题

实践过程中发现一个问题: 在vue 组件 <style> 中,通过 @import引入样式文件后,修改样式文件 HMR 失效。 这是个让人很受伤的问题。该问题是parcel-plugin-vue(查看issue18) 导致的,目前还未解决。

我们这里可以先在vue 组件的 <script>中将样式 import 进来, HMR有效。