vue2+webpack4+scss

做者:心葉
時間:2019年01月30日 10:37css

前要

因爲webpack的配置具備實時性,以前搭建的vue2項目是基於webpack2,所以,特意在此維護一篇關於webpack4搭建vue2項目的說明,會及時更新(github地址:https://github.com/yelloxing/...)。vue

另外,爲了提供開發效率,在這裏vue-prototype又維護了原型項目,幫助快速開發。node

基礎配置

npm install --save-dev vue vue-router

因爲是搭建vue2項目,首先須要安裝用到的vue和vue路由。webpack

npm install --save-dev webpack webpack-cli

接着,安裝webpack,創建好空的webpack.config.js,以下:git

module.exports = {
    entry: ['./src/entry.js'],
    output: {
        path: __dirname,
        filename: 'build/main.js'
    },
    resolve: {
        alias: {
            'vue': 'vue/dist/vue.js'
        }
    },
    module: {
        rules: []
    }
};

上面的配置和webpack2的沒有區別,這裏再也不贅述了(entry:打包入口,output:打包文件存放地址,resolve的配置是由於vue2在開發和生成模式對象不統一)。github

解析vue2

npm install --save-dev vue-template-compiler vue-loader

首先安裝vue模板解析器,接着,在webpack.config.js中配置一下:web

...
rules: [{
    test: /\.vue$/,
    use: ['vue-loader']
}]
...

配置的時候,其實就是加上上面這二句代碼。vue-router

到此爲止,最簡單的項目就搭建好了。shell

爲了方便執行,在package.json中添加下面腳本:npm

"scripts": {
    "release": "node_modules/.bin/webpack"
}

而後在命令行執行:

npm run release

搭建開發環境

上面的打包方式時候開發完畢之後,發佈代碼,若是是開發中,咱們但願實時刷新。

首先安裝服務器:

npm install --save-dev webpack-dev-server

接着在webpack中配置:

...
devServer: {
    contentBase: './',
    compress: true,
    host: 'localhost',
    port: '20000',
    hot: true,
    inline: true,
    historyApiFallback: true
},
plugins: [
    new webpack.HotModuleReplacementPlugin()
],
module:
...

而後,在package.json中添加下面腳本:

"scripts": {
    "dev":"node_modules/.bin/webpack-dev-server --open",
    "release": "node_modules/.bin/webpack"
}

執行下面命令:

npm run dev

瀏覽器會自動打開:localhost:20000

完善vue配置

npm install --save-dev vue-style-loader css-loader

上面是添加項目中對css的解析器,再在webpack.config.js中添加以下配置,便可開發css代碼:

{
    test: /\.css$/,
    use: ['vue-style-loader', 'css-loader']
}

添加對scss的支持

npm install --save-dev sass-loader node-sass

而後,添加下面配置:

{
    test: /\.scss$/,
    use: ["vue-style-loader", "css-loader", "sass-loader"]
}

添加對圖片的支持

npm install --save-dev file-loader

而後,添加下面配置:

{
    test: /\.(png|jpg|jpeg|gif|bmp)$/,
    use: ['file-loader?limit=7000&name=build/image/[name].[ext]']
}

若是你使用的圖片格式不被上面的test包含,須要手動額外添加便可。

後記

完整的代碼維護在github中,會及時更新:https://github.com/yelloxing

但願對你學習vue2有所幫助 :)

本站公眾號
   歡迎關注本站公眾號,獲取更多信息