【webpack】webpack.base.conf.js基礎配置

var path = require('path') // node路徑模塊

var utils = require('./utils') // 對vue-loader對於css預編譯一些提取的工具模塊,由於對於我的開發而言,在裏面提供了,sass,less,stylus,possCss等一些列預編譯解析的loader

var config = require('../config') // 對開發環境和生產環境的一系列不一樣參數的,路徑等配置

var vueLoaderConfig = require('./vue-loader.conf') // 基礎生產環境和開發環境對vue-loader進行的配置

 

function resolve (dir) {
  return path.join(__dirname, '..', dir)
} 

封裝函數,進行傳參,獲取絕對路徑,方便對import時引入地址的填寫
path.join :對多個字符串進行拼接

 

 entry: {
    app: './src/main.js'
  },
打包的入口js文件

 

output: {
    path: config.build.assetsRoot, (config.build.assetsRoot===path.resolve(_dirname,'../dist')做者把想打包出來的文件領放在根目錄下的dist目錄下)
    filename: '[name].js', 用來打包出的文件名,由於會打包出來的文件是三個文件,一個是本身的源代碼文件,一個是runtime文件,一個是ventor文件
    publicPath: process.env.NODE_ENV === 'production'  靜態文件訪問的路徑,根據靜態文件的loader進行拼接配置,當進行環境是生產環境的話,咱們就用config文件中的config.build.assetsPublicPath這個屬性,若是是生產環境,則用config.dev.assetsPulicPath
      ? config.build.assetsPublicPath
      : config.dev.assetsPublicPath
  },
output是咱們輸文件輸出的路徑

 

 resolve: {
    extensions: ['.js', '.vue', '.json'],是對模塊的後綴進行解析,當咱們引入本身寫的模塊的時候,沒有帶js後綴,那文件會不會識別,本質上不會識別,可是有了這個配置,會先對.js後綴進行匹配,沒有再匹配.vue,沒有在匹配.json,仍是沒有找到的話,則會報錯
    alias: { 
    
'vue$': 'vue/dist/vue.esm.js', 配置別名,若是你在一個很深的文件引入其餘文件中有一個很深的文件,咱們就用@來代替src
    
'@': resolve('src')
}
},
relove是用來對模塊進行解析,就是所謂的Libary第三方庫

 

 module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: vueLoaderConfig
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: [resolve('src'), resolve('test')]
      },
      {
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
        }
      },
      {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
        }
      }
    ]
  }

test:用來解析全部後綴爲*的文件css

loader:用什麼Npm的形式的loader去解析vue

include:表明咱們解析的文件只包含那些東西node

options:是對解析文件參數配置,對於url-loader來講limit1000表明當小時1000kb的文件咱們則能夠磚面base64,name對輸出的內容進行地址轉換json

 

對解析文件的參數配置sass

相關文章
相關標籤/搜索