问题:webpack 在 vue.js 组件中解析样式(stylus)的别名

在我的webpack.config.jsfile 中的vue.jsproject 上,我确实有这个:

///...,
resolve: {
  extensions: ['.js', '.vue', '.json'],
  alias: {
    'vue$': 'vue/dist/vue.common.js',
    'assets': path.resolve(__dirname, './src/assets'),
    'components': path.resolve(__dirname, './src/components')
  }
},
// ....

这允许我在任何Vue component中使用其他组件,如下所示:

import 'component/path/to/MyComponent'

不必想知道我可能在我的组件树中的哪个位置。

我希望您与styles具有相同的容量,尤其是与 `stylus``

假设我确实有一个stylus file' insrc/assets/funcs.styl:

add(a)
  a + a

和让我们说src/components/a/very/long/path/MyComponent.vue中的一个组件:

<template>
  <div id="my-component">
    <h1>{{ msg }}</h1>
  </div
</template>

<script>

export default {
  name: 'my-component',
  data () {
    return {
      msg: 'A title'
    }
  }
}
</script>

<style lang="stylus" scoped>
@import "../../../../../../assets/funcs.styl"

h1
 margin add(30px)

</style>

我希望能够替换这条线

@import "../../../../../../assets/funcs.styl"

这样

@import "assets/funcs"

使用适用于 js 文件的webpack解析和别名功能。这将避免在大型项目中很难找到我在深层组件中可能需要的手写笔混合和功能的错误。

他们有办法这样做吗?

它必须是功能请求吗?在webpack上?在vue-style-loader上?在stylus-loader上?

任何精度将不胜感激;-)

塞布

解答

你应该使用

@import '~assets/funcs';

Logo

前往低代码交流专区

更多推荐