文章出處
文章列表
十一、安裝sass文件轉換為css需要的相關依賴包
npm install --save-dev sass-loader style-loader css-loader
loader的作用是輔助webpack將符合條件的源文件轉換為對應的目標格式文件。比如index.scss轉換成index.css
安裝成功后,package.json文件變化如下:
接著,安裝extract-text-webpack-plugin,讓webpack可以輸出css格式的文件
npm install --save-dev extract-text-webpack-plugin
安裝成功后,提示需要node-sass做配合,所以下一步是安裝node-sass
npm install --save-dev node-sass
安裝node-sass會比較久,需要耐心等待
全部搞定后,package.json文件變化如下:
十二、將app/css/index.css文件改為sass編譯輸出
在origin文件夾下,新增css.js文件,用于指定讀取origin/css/index.scss文件
css.js文件內容如下:
require('./css/index.scss');
origin/css/index.scss文件內容如下
@charset "utf-8";
$colorRed : red;
$fontSize : 14px;
.demo{color:$colorRed;font-size:$fontSize;}
更新webpack配置文件webpack.config.js
var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
var ExtractPlugin = require('extract-text-webpack-plugin');
module.exports = {
// 配置入口
entry: {
'/js/index':__dirname +'/origin/origin.js',
'/css/index':__dirname +'/origin/css.js'
},
// 編譯后的文件路徑
output: {
path: __dirname +'/app', // 文件路徑
filename: '[name].js' // 文件名稱
},
module: {
// 編譯規則
loaders: [
// 配置sass編譯規則
{
test:/\.scss$/,
loader:ExtractPlugin.extract('style-loader', 'css-loader!sass-loader')
}
]
},
// 輔助的插件
plugins:[
new BrowserSyncPlugin({
host:'localhost', // 實時監聽,webpack -w 可以實時更新硬盤中的文件js,css
port:8080,
file:'',
server:{
baseDir:'./app'
}
}),
new ExtractPlugin('[name].css')
]
}
然后,啟動webpack -w
編譯成功,再實時修改字體顏色為green
十三、加入vue
1.安裝vue,vue選擇安裝版本1.0.0
npm install --save-dev vue@1.0.0
2.安裝babel的相關依賴包,可以編譯最新標準的javascript。比如es6,es7。
npm install --save-dev babel-core babel-loader babel-runtime babel-plugin-transform-runtime babel-preset-es2015 babel-preset-stage-0
3.更新webpack配置文件webpack.config.js
var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
var ExtractPlugin = require('extract-text-webpack-plugin');
module.exports = {
// 配置入口
entry: {
'/js/index':__dirname +'/origin/origin.js',
'/css/index':__dirname +'/origin/css.js'
},
// 編譯后的文件路徑
output: {
path: __dirname +'/app', // 文件路徑
filename: '[name].js' // 文件名稱
},
module: {
// 編譯規則
loaders: [
// 配置sass編譯規則
{
test:/\.scss$/,
loader:ExtractPlugin.extract('style-loader', 'css-loader!sass-loader')
},
{
// 讓webpack去驗證文件是否是.js結尾將其轉換
test: /\.js$/,
// 通過babel轉換
loader: 'babel',
// 不用轉換的node_modules文件夾
exclude: /node_modules/,
query: {
'presets': ['es2015', 'stage-0'],
'plugins': ['transform-runtime']
}
},
]
},
// 輔助的插件
plugins:[
new BrowserSyncPlugin({
host:'localhost', // 實時監聽,webpack -w 可以實時更新硬盤中的文件js,css
port:8080,
file:'',
server:{
baseDir:'./app'
}
}),
new ExtractPlugin('[name].css')
]
}
修改origin/origin.js內容如下:
import Vue from 'vue'
new Vue({
el: '#print',
data: {
message: "hello vue!"
}
})
接著修改app/index.html內容如下:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<title>demo</title>
<link type="text/css" rel="stylesheet" href="./css/index.css" />
</head>
<body>
<p id="demo" class="demo">hello world!</p>
<p id="print">{{message}}</p>
<script type="text/javascript" src="./js/index.js"></script>
</body>
</html>
啟動webpack -w,查看瀏覽器結果
到此,成功整合webpack+sass+vue!
文章列表
全站熱搜