1. webpack導入csscss
1) 下載相關的加載器 npm install style-loader css-loader -Dvue
2)將index.css引入到mian.js中node
import './css/index.css'
3) 配置webpack.config.jswebpack
使用module屬性web
const path = require('path') module.exports = { mode: 'development', entry:path.join(__dirname,'./src/main.js'),//打包的那個文件 output:{ path:path.join(__dirname,'./dist'), filename :'bundle.js' }, devServer:{ open:'true', port:'8081', contentBase:'src' }, module:{ rules:[ test: {'/\.css$/',use['style-loader','css-loader']} ] } }
重啓運行 `npm run dev`npm
{ test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },瀏覽器
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }, sass
2.webpack導入圖片babel
因爲導入圖片須要使用url地址,因此須要引入 `url-loader` 和 `file-loader` ( `file-loader` 依賴於 `url-loader` 因此須要一塊兒引入)less
npm i url-loader file-loader -D
.box{ background-image:url('../Images/1.jpg') }
配置webpack.config.js
module:{ rules:[ {test:/\.css$/,use:['style-loader','css-loader']}, {test:/\.(jpg|png|gif|bmp|jpeg)$/,use: 'url-loader?limit=4000&name=[hash:8]-[name].[ext]' }, //若是圖片大於limit的大小則不會被解析成base64 //name設置是否重命名圖片, [name].[ext]是保持引入的時候的圖片的名字,[hash:8]-[name].[ext]是自動在圖片原名前加一個隨機的hash值,防止圖片重複 ] }
3.webpack中引入babel
對於部分瀏覽器不識別的高級的ES6語法,藉助 `babel` 來轉化
npm install babel-core babel-loader babel-plugin-transform-runtime -D //轉換工具
npm install babel-preset-env babel-preset-stage-0 -D //語法
在webpack.config.js中配置
module:{ rules:[ {test:/\.js$/,use:'babel-loader',exclude:/node_modules/} //exclude是去掉不須要轉換的包
] }
在項目的根目錄下新建 `.babelrc` 的 `babel` 配置文件(JSON格式,須要符合JSON規範)
{ "plugins":["transform-runtime"], "presets":["env","stage-0"] }
4.webpack中使用模板,須要解析.vue文件
npm install vue-loader vue-template-compiler -D
在webpack.config.js中的配置
const VueLoaderPlugin = require('vue-loader/lib/plugin'); module.exports = { plugins:[ new VueLoaderPlugin(), ], module:{ rules:[ {test:/\.vue$/,use:'vue-loader'}, ] }, }
高版本的webpack使用vue-loader的時候都須要配置下插件(標藍部分)