zoukankan      html  css  js  c++  java
  • vue

    exports:导出功能函数或变量

    module.exports:默认导出{}

    -----------------------------------------------------------------------------------

    module.exports 初始值为一个空对象 {}

    exports 是指向的 module.exports 的引用

    require() 返回的是 module.exports 而不是 exports

    -------------------------------------------------------

    关于module.exports和exports.js详情请查看:https://cnodejs.org/topic/5231a630101e574521e45ef8

      1 'use strict'
      2 // 路径
      3 const path = require('path')
      4 // 来自config/index.js
      5 const config = require('../config')
      6 
      7 const ExtractTextPlugin = require('extract-text-webpack-plugin')
      8 // 来自package.json
      9 const packageConfig = require('../package.json')
     10 
     11 exports.assetsPath = function (_path) {
     12   const assetsSubDirectory = process.env.NODE_ENV === 'production'
     13     ? config.build.assetsSubDirectory
     14     : config.dev.assetsSubDirectory
     15 
     16   return path.posix.join(assetsSubDirectory, _path)
     17 }
     18 
     19 exports.cssLoaders = function (options) {
     20   options = options || {}
     21 
     22   const cssLoader = {
     23     loader: 'css-loader',
     24     options: {
     25       sourceMap: options.sourceMap
     26     }
     27   }
     28 
     29   const postcssLoader = {
     30     loader: 'postcss-loader',
     31     options: {
     32       sourceMap: options.sourceMap
     33     }
     34   }
     35 
     36   // 生成与extract文本插件一起使用的加载器字符串
     37   function generateLoaders(loader, loaderOptions) {
     38     const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
     39 
     40     if (loader) {
     41       loaders.push({
     42         loader: loader + '-loader',
     43         options: Object.assign({}, loaderOptions, {
     44           sourceMap: options.sourceMap
     45         })
     46       })
     47     }
     48 
     49     //指定该选项时提取CSS
     50     //(在生产构建期间就是这种情况)
     51     if (options.extract) {
     52       return ExtractTextPlugin.extract({
     53         use: loaders,
     54         fallback: 'vue-style-loader'
     55       })
     56     } else {
     57       return ['vue-style-loader'].concat(loaders)
     58     }
     59   }
     60 
     61   // https://vue-loader.vuejs.org/en/configurations/extract-css.html
     62   return {
     63     css: generateLoaders(),
     64     postcss: generateLoaders(),
     65     less: generateLoaders('less'),
     66     sass: generateLoaders('sass', { indentedSyntax: true }),
     67     scss: generateLoaders('sass'),
     68     stylus: generateLoaders('stylus'),
     69     styl: generateLoaders('stylus')
     70   }
     71 }
     72 
     73 // 为单独样式文件生成加载器(.vue之外)
     74 exports.styleLoaders = function (options) {
     75   const output = []
     76   const loaders = exports.cssLoaders(options)
     77 
     78   for (const extension in loaders) {
     79     const loader = loaders[extension]
     80     output.push({
     81       test: new RegExp('\.' + extension + '$'),
     82       use: loader
     83     })
     84   }
     85 
     86   return output
     87 }
     88 
     89 exports.createNotifierCallback = () => {
     90   const notifier = require('node-notifier')
     91 
     92   return (severity, errors) => {
     93     if (severity !== 'error') return
     94 
     95     const error = errors[0]
     96     const filename = error.file && error.file.split('!').pop()
     97 
     98     notifier.notify({
     99       title: packageConfig.name,
    100       message: severity + ': ' + error.name,
    101       subtitle: filename || '',
    102       icon: path.join(__dirname, 'logo.png')
    103     })
    104   }
    105 }
  • 相关阅读:
    Python字符串
    ListCtrl控件
    leetcode1004
    leetcode1003
    leetcode1002
    leetcode153
    leetcode540
    leetcode435
    leetcode999
    leetcode997
  • 原文地址:https://www.cnblogs.com/cisum/p/9609593.html
Copyright © 2011-2022 走看看