mpvue 中 sass 全局变量配置方法代码详解

why 176 2024-07-31

本篇文章给大家带来的内容是关于mpvue中sass全局变量的配置方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

mpvue 中 sass 全局变量配置的方法及代码详解

安装loader

1

cnpm i sass-loader sass-resources-loader --save-dev

修改根目录下/build/utils.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

var path = require('path')

var config = require('../config')

var ExtractTextPlugin = require('extract-text-webpack-plugin')

 

exports.assetsPath = function (_path) {

  var assetsSubDirectory = process.env.NODE_ENV === 'production'

    ? config.build.assetsSubDirectory

    : config.dev.assetsSubDirectory

  return path.posix.join(assetsSubDirectory, _path)

}

 

exports.cssLoaders = function (options) {

  options = options || {}

 

  var cssLoader = {

    loader: 'css-loader',

    options: {

      minimize: process.env.NODE_ENV === 'production',

      sourceMap: options.sourceMap

    }

  }

 

  var postcssLoader = {

    loader: 'postcss-loader',

    options: {

      sourceMap: true

    }

  }

 

  var px2rpxLoader = {

    loader: 'px2rpx-loader',

    options: {

      baseDpr: 1,

      rpxUnit: 0.5

    }

  }

  //添加该项

  var sassResourceLoader = {

    loader: 'sass-resources-loader',

    options: {

      resources: [

      //修改相应路径

        path.resolve(__dirname, '../src/styles/index.scss'),

      ]

    }

  }

  //添加该项

 

  // generate loader string to be used with extract text plugin

  function generateLoaders (loader, loaderOptions, anotherLoader) {

    var loaders = [cssLoader, px2rpxLoader, postcssLoader]

    if (loader) {

      loaders.push({

        loader: loader + '-loader',

        options: Object.assign({}, loaderOptions, {

          sourceMap: options.sourceMap

        })

      })

    }

 

    if(!!anotherLoader) loaders.push(anotherLoader);

 

    // Extract CSS when that option is specified

    // (which is the case during production build)

    if (options.extract) {

      return ExtractTextPlugin.extract({

        use: loaders,

        fallback: 'vue-style-loader'

      })

    else {

      return ['vue-style-loader'].concat(loaders)

    }

  }

 

  // https://vue-loader.vuejs.org/en/configurations/extract-css.html

  return {

    css: generateLoaders(),

    wxss: generateLoaders(),

    postcss: generateLoaders(),

    less: generateLoaders('less'),

    //修改

    sass: generateLoaders('sass', { indentedSyntax: true },sassResourceLoader),

    scss: generateLoaders('sass',{},sassResourceLoader),

    //修改

    stylus: generateLoaders('stylus'),

    styl: generateLoaders('stylus')

  }

}

 

// Generate loaders for standalone style files (outside of .vue)

exports.styleLoaders = function (options) {

  var output = []

  var loaders = exports.cssLoaders(options)

  for (var extension in loaders) {

    var loader = loaders[extension]

    output.push({

      test: new RegExp('\\.' + extension + '$'),

      use: loader

    })

  }

  return output

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序 10 个请求并发限制的优化相关消息
下一篇:小程序引导用户授权的思路与项目实现方法及代码剖析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~