2017-02-25 91 views
0

我已經開始使用this extension的模板,以開始運行angular2 + .net core。我不想用boostrap,但materialize-css,所以我在package.json移去了自舉包,而不是我加"materialize-css": "0.98.0",VS2015中的WebPack:如何配置新包?

然後我編輯的webpack.config.vendor.js,我刪除引導並添加materialize-css到「供應商」名單。

然後我重建了一切,但似乎materialize-css仍然不存在(無法找到它的CSS類)。我試圖清除瀏覽器緩存,甚至試圖打開一個全新的瀏覽器(邊緣),但仍然沒有materialize-css類。

我錯過了什麼?

編輯

目前,我的供應商名單如下:

vendor: [ 
     '@angular/common', 
     '@angular/compiler', 
     '@angular/core', 
     '@angular/http', 
     '@angular/platform-browser', 
     '@angular/platform-browser-dynamic', 
     '@angular/router', 
     '@angular/platform-server', 
     'angular2-universal', 
     'angular2-universal-polyfills', 
     'materialize-css', 
     'es6-shim', 
     'es6-promise', 
     'jquery', 
     'zone.js', 
    ] 

回答

0

你做正確的一切,只是需要做的一件事情略有不同。在你webpack.config.vendor.js,而不是materialize-css,加materialize-css/dist/css/materialize.cssvendor陣列:

... 
entry: { 
    vendor: { 
     ... 
     'materialize-css/dist/css/materialize.css', 
     ... 
    } 
} 

這將包括CSS您造成包。如果你還需要materialize-css中的字體和js,你需要配置合適的加載器,參見https://www.npmjs.com/package/materialize-loader

+0

好吧,但我不明白,我也通過例子jquery加載和工作,我我只想表明我想要「jquery」。它正在工作,我以爲它會去指定模塊的'bower.json',並檢查需要什麼,如果我檢查物化,我有預期的「bin/materialize.css和bin/materialize。 JS」。奇怪的是必須指定自己的完整路徑的css,因爲如果包的作者改變其結構,它將不再工作。那麼,爲什麼它爲jQuery工作,但不實現 - CSS? – J4N

+0

這並不奇怪,事實上,這正是原始ASP.NET核心模板包中引用的引導程序 - https://github.com/ligershark/CoreTemplatePack/blob/master/Templates/AspNetCoreAngular2/webpack。 config.vendor.js#L30 jQuery是一個JS庫,不是CSS,它自動在node_modules文件夾中查找。但是,CSS文件需要手動引用。 – m1kael

+0

哦,我明白了,所以如果我必須加載JS和CSS?我可以只指定一次'materialize-css'和一次'materialize -css/bin/materialize.css'?它如何知道要加載哪個js文件? – J4N