2016-11-17 63 views
2

在GitHub的樣板項目中,我發現了一些我還不懂的Webpack配置中的東西。瞭解Webpack:Loader定義了兩次

爲什麼下面的loader使用相同的測試定義兩次? 如果我刪除其中的一個,應用程序不會按預期呈現。

{ test: /\.css$/, include: path.resolve('./src/app'), loaders: [ 
     'style-loader', 
     'css-loader', 
     'postcss-loader' 
    ] 
    }, 
    { test: /\.css$/, exclude: path.resolve('./src/app'), loaders: [ 
     'style-loader', 
     'css-loader' 
    ] 
    }, 

回答

0

如果你看一下配置的控制器{include, exclude}選項,第一配置將用於你的源代碼,第二個爲所有其他人(供應商在node_modules/,全球模塊,其他路徑)。你可以應用相同的方法,比如說,用Babel等配置/跳過分析源代碼。

我們這樣做的原因是因爲在註冊表中發佈的源已經被解析並轉換爲它們包的預部署的一部分,發佈腳本,而我們的軟件包仍在開發中。

在這裏,您只希望您的源代碼使用以PostCSS爲目標的語法和表達式,而將通過NPM分發的語法和表達式視爲標準CSS。您只解析它們來解決依賴關係並將它們轉換爲JS模塊,完全跳過PostCSS解析器。