1. 程式人生 > >webpack踩坑記

webpack踩坑記

1、配置postcss-loader,這是我的配置檔案:

var htmlWebpackPlugin = require('html-webpack-plugin');//這個外掛可以幫助生成 HTML 檔案
var path = require('path');
var webpack = require('webpack');

module.exports = {
    context:__dirname,   // __dirname表示當前路徑,context入口檔案,絕對路徑
    entry:'./src/app.js',
    output:{
        path:'./dist/js'
, filename:'[name].bundle.js', }, module:{ loaders:[ { test:/\.js$/, loader:'babel-loader', exclude: path.resolve(__dirname,'node_modules'),//排除node_modules include:path.resolve(__dirname,'src'),//將相對路徑解析成絕對路徑
query:{ presets:['latest'] } }, { test:/\.css$/, loader:'style-loader!css-loader?importLoaders=1!postcss-loader' //?importLoaders=1處理css檔案中import進來的css檔案,使其支援postcss-loader /*感嘆號是串聯兩個loader的橋樑, css-loader處理完的css會經過style-loader插入到html程式碼中*/
}, { test:/\.less$/, loaders: [ 'style-loader', 'css-loader?importLoaders=1', 'postcss-loader', 'less-loader' ] } ] }, plugins:[ new htmlWebpackPlugin({ filename:'index.html', template:'index.html', inject:'body' }), //配置postcss new webpack.LoaderOptionsPlugin({ test:/\.css$/, options:{ postcss:[ require('autoprefixer')({ browsers:['last 5 versions'] }) ] } }) ] }

2、在webpack打包less檔案時,引入了postcss-loader:

module.exports = {
    loaders =[
        {
            test:/\.less$/,
            loaders: [
                 'style-loader',
                 'css-loader?importLoaders=1',
                 'postcss-loader',
                 'less-loader'
               ]
        }
    ]
}

但是執行webpack後一直報這樣的錯:
這裡寫圖片描述

這是我的layer.less檔案:

.layer{
    width:600px;
    hieght:200px;
    background-color: green;
    >div{
        width: 400px;
        height: 200px;
        background-color: yellow;
    }
    .flex-div{
        display: flex;
    }
}

這是我的layer.js檔案:

import './layer.less';

function layer(){
    return {
        name:'layer',
        tpl:tpl
    };
}

export default layer;

在入口檔案app.js中引用了layer.js從而進行打包,發現這個錯誤一直存在,很糾結。。。
後來在慕課網友的幫助下,解決了問題:
在根目錄下新建postcss.config.js,裡面寫上:

module.exports = {
    plugins: [
        require('autoprefixer')({browsers:['last 5 versions']})
    ]
}

再執行webpack,就ok了!

原來這是webpack2的新寫法,真會玩。。。還好機智的我看了官網的api文件:

這裡寫圖片描述

文件指出,我們可以將不同的配置放在不同的目錄中。例如,全域性配置project/postcss.config.js並覆蓋其外掛project/src/legacy/postcss.config.js。

另外loader的順序是style-loader!css-loader!postcss-loader!less/sass-loader
這個順序很重要,webpack2開始不支援style!css!postcss的寫法,末尾必須加-loader。

在模板中載入圖片,如果使用絕對路徑沒問題,但是相對路徑的話就會載入不出圖片,在layer.tpl中程式碼:

<div class="layer">
    <img src="'../../assets/demo1.jpg">
    <div>This is a }<%= name %> layer.</div>
    <% for(var i=0;i<arr.length;i++){ %>
        <%= arr[i] %>
    <% } %>
</div>

可以使用下面的方法載入相對路徑圖片:

<div class="layer">
    <img src="${ require('../../assets/demo1.jpg') }">
    <div>This is a }<%= name %> layer.</div>
    <% for(var i=0;i<arr.length;i++){ %>
        <%= arr[i] %>
    <% } %>
</div>

相關推薦

webpack

1、配置postcss-loader,這是我的配置檔案: var htmlWebpackPlugin = require('html-webpack-plugin');//這個外掛可以幫助生成 HTML 檔案 var path = require('pat

Visual Studio For MacOS (二)

mirrors class app macosx andro mce 資料 library devel Visual Studio For MacOS安裝安卓SDK。 系統默認安裝了安卓6.0 API23的SDK。 但是我需要安卓7.0的,API24. 遂安裝。

spark共享變量

park oid and 共享變量 roi syn out his andro %E5%9C%A8android%E4%B8%AD%E6%80%8E%E4%B9%88%E7%94%A8this removeviewinlayout?к????? repo????л???

Linux使用

gre 16px -- 機器 操作 onf 問題: 失敗 gbk Ubuntu安裝坑: 1、對於新手第一次安裝ubuntu,特殊情況會出現因為分辨率問題導致安裝界面不全,無法進行下一步操作。 解決方案:使用alt+鼠標左鍵拖動屏幕Linux文件名亂碼問題:

webpack之路 (2)——圖片的路徑與打包

img url rom file filename png 一起 類型 emp webpack踩坑之路 (2)——圖片的路徑與打包 剛開始用webpack的同學很容易掉進圖片打包這個坑裏,比如打包出來的圖片地址不對或者有的圖片並不能打包進我們的目標文件夾裏(bund

java-getResourceAsStream

mov load color () tar type 當前 blog ase 本文主要是研究下面集中方法到底誰才能真正的load到文件,你能一眼看出來嗎? GetResourcesSample.class.getClassLoader.getResourceAsStream

webpack之旅

image cnp conf 項目 style win src 丟失 文件 1、安裝webpack失敗問題 錯誤原因: 這主要是我以普通用戶的身份進行webpack的全局安裝,權限不夠。 【普通用戶】 說白了就是通過運行window+r+cmd進入的命令行 解決方式:

c# 重載運算符(ovveride operator),關於null比對

漏洞 pre console blog 為什麽 留言 報表 bool 解決辦法 場景描述: 需要比對兩個版本的對應對象是否完全一致(每個屬性值一致),不一致的導出報表顏色標識,以便提醒後續使用報表人員。 實現思路: 對象重載ToString方法,另實現一比對基類(為了通用)

Spring @Transactional

然而 效果 記錄 dcl iso 如果 分庫分表 ignore mar @Transactional踩坑記 總述 ? Spring在1.2引入@Transactional註解, 該註解的引入使得我們可以簡單地通過在方法或者類上添加@Transactional註解,實現事務控

桌面應用“標註器”打包

環境 的確 變量 標註 imp sci 技術 報錯 編寫 昨天(2018/4/6)花了幾乎一天的時間打包我的桌面應用“標註器”。下午3點完成最後的編寫之後,準備在女朋友雅喻的電腦上配環境打包(我的電腦不能用pyinstaller打包,重裝也不行,玄學錯誤。)。雅喻的電腦上缺

[轉]Spark :數據庫(Hbase+Mysql)

cep 直接 策略 https rds 但是 更新 base ID https://cloud.tencent.com/developer/article/1004820 Spark 踩坑記:數據庫(Hbase+Mysql) 前言 在使用Spark Streaming的過程

uWSGI

dex wsgi oba 啟動 監聽 head HR nvi header 一、協議的一致性 uWSGI 是在 nginx 後面,所以 nginx 轉發請求時的協議要和 uWSGI 監聽的協議一致。否則就會出現問題,因為是三者之間的通信,排查起來需要想清楚請求傳遞的次序:

Vue項目~

found 成功 原因 提示 數據文件 support then ror tro 最近在寫一個Vue的項目~踩了很多坑,下面總結一下出現的問題 1.空白頁面,不提示報錯,但是什麽都沒有 main.js const app = new Vue({ router }).$

create-react-app

tcs onf class working zip als mpi iconfont hat 前言 哇,不的不說這個react 這個腳手架create-react-app腳確實有很多問題,哈哈,下面來看看吧有哪些坑: 引用sass或者less 記得16

.NetCore SignalR

cred this arp 虛擬機 user fault new alt dem 背景 由於最近公司要做微信小程序聊天,所以.NetFramwork版本的SignalR版本的不能用了。因為小程序裏沒有windows對象,導致JQuery無法使用。而Signalr的 js客戶

Win10 安裝配置 MongoDB 4.0

repl 其他 文件夾 power chm font 無人值守安裝 path .org redis 官方沒有 Windows 版的,微軟維護的已經好久沒更新了,所以就在想著換成 MongoDB。 於是一趟被我復雜化的踩坑之旅就開始了,同時也記錄一下,避免有人遇見跟我一樣的

微信公眾號支付

系統 shm efi bsp 網絡異常 router nec 平臺 wiki   前兩周做微信H5支付,在瀏覽器端用的,天真地以為app掛到公眾號中也能用,結果不行>"<|||| ,只好再對接一次公眾號支付,微信的支付對接下來總體感覺就是封裝地不如支付寶,文檔不

webpack記錄(一)

有著 安裝webpack package 頁面 如圖所示 ins 部分 二次 令行 博客還是要簡單記錄一下的,美劇看完了,於是決定學習,想起來webpack還沒學啊,大物就先放一放,然後就開始找教程,慕課上某免費視頻。 那webpack是啥呢? 如圖所示: 是不

Springcloud---使用feignclient遠端呼叫服務404

公司專案進行微服務改造,由之前的dubbo改用SpringCloud,微服務之間通過FeignClient進行呼叫,今天在測試的時候,eureka註冊中心有相應的服務,但feignclient就是無法調通,一直報404錯誤,排查過程如下: 一、問題:   服務提供方定義的介面如下: /** *

vlc-android 編譯

VLC-Android編譯踩過的坑及感悟,整理髮表出來,希望對大家有幫助。 一、建議掌握的基本知識【否則在編譯過程中,連錯誤都不知道怎麼查,如下一些基本點是針對linux小白的,大牛勿噴】 a. Makefile的工作原理,明白Rule-Target-Prerequisites-Reci