webpack 在 vue.js 组件中解析样式(手写笔)的别名

zed*_*yas 2 stylus webpack vue.js webpack-style-loader

vue.js在我的webpack.config.js文件中的一个项目中,我确实有这个:

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

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

import 'component/path/to/MyComponent'
Run Code Online (Sandbox Code Playgroud)

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

我希望你有同样的能力,styles特别是与`stylus`

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

add(a)
  a + a
Run Code Online (Sandbox Code Playgroud)

和一个组件说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>
Run Code Online (Sandbox Code Playgroud)

我希望能够替换这条线

@import "../../../../../../assets/funcs.styl"
Run Code Online (Sandbox Code Playgroud)

这样

@import "assets/funcs"
Run Code Online (Sandbox Code Playgroud)

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

他们有办法这样做吗?
它必须是功能请求吗?上webpack?上vue-style-loader?上stylus-loader

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

塞伯

Eas*_*ack 5

你应该使用

@import '~assets/funcs';