vueプロジェクトはscssを使用します

1.sassの依存関係をインストールします

npm  install sass-loader --save-dev
npm install node-sass --sava-dev
npm install vue-style-loader --sava-dev

vue-loaderはwebpackローダーです。vueコンポーネントをデプロイ可能なjs、html、cssモジュールに変換するために使用されます。したがって、vueプロジェクトでscssを使用する場合は、vue-loaderにscssファイルの解析方法を指示する必要があります。

Webpackでは、すべてのプリプロセッサが対応するローダーと一致する必要があります。vue-loaderは、他のWebpack-loaderがコンポーネントの一部を処理できるようにし、lang属性に基づいて使用するローダーを自動的に決定しますか。したがって、sass / scssを処理するローダーをインストールするだけです。vueでscssを使用できます。

vue-loaderはファイル形式のサフィックスに従って対応するローダーを自動的に使用するため、scss / sassのローダーを構成する必要はありません。

2.構成する必要がない理由

前述したように、vue-loaderを使用すると、lang属性に基づいて使用するローダーを自動的に決定できます。それはどのようにそれをしますか?それはとても素晴らしいですか?コア部分のソースコードを見てみましょう

exports.cssLoaders = function (options) {
    
    
 options = options || {
    
    }
 
 var cssLoader = {
    
    
  loader: 'css-loader',
  options: {
    
    
   minimize: process.env.NODE_ENV === 'production',
   sourceMap: options.sourceMap
  }
 }
 
 // generate loader string to be used with extract text plugin
 function generateLoaders (loader, loaderOptions) {
    
    
  var loaders = [cssLoader]
  if (loader) {
    
    
   loaders.push({
    
    
    loader: loader + '-loader',
    options: Object.assign({
    
    }, loaderOptions, {
    
    
     sourceMap: options.sourceMap
    })
   })
  }
 
  // 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(),
  postcss: generateLoaders(),
  less: generateLoaders('less'),
  sass: generateLoaders('sass', {
    
     indentedSyntax: true }),
  scss: generateLoaders('sass'),
  stylus: generateLoaders('stylus'),
  styl: generateLoaders('stylus')
 }
}

vue-loaderにこの機能を与えるのは上記のコードであり、ファイルごとに異なるローダーを使用します。

3.次のステップは、通常scssを使用することです

おすすめ

転載: blog.csdn.net/qq_17627195/article/details/109047073