在webpack項目(本人使用的 vue-cli-webpack )中,須要引入 css 或 scss等樣式文件時,本人目前知道的,一般有如下幾種方法:javascript
main.js
中import 'izitoast/dist/css/izitoast.min.css'
@import
@import '../../assets/scss/widgets.scss';
(在src目錄下)index.html
文件中使用cdn:<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
若是你不想使用使用上述方法,想要將 css 文件放置在 /static
目錄下,像一般同樣經過link引入;或者使用上述方法有問題時:
如本人在使用 import
方法在main.js
中引入font-awesome.min.css
時,總是出問題:css
warning in [workspace]/~/.3.0.1@vue-style-loader/lib/listToStyles.js There are multiple modules with names that only differ in casing. This can lead to unexpected behavior when compiling on a filesystem with other case-semantic. ...
又不想在開發環境中一直使用CDN,那麼怎麼辦呢?html
若是直接在index.html
中使用<link rel="stylesheet" href="./static/css/font-awesome.min.css">
,npm run dev
時webpack是沒法幫你從目標目錄中加載css文件的,
由於 dev-server 中沒有 此對應目錄!
由於你的css文件沒有通過webpack處理(應該是這樣吧?)
那麼,只好...
stackoverflow!vue
http://stackoverflow.com/questions/27639005/how-to-copy-static-files-to-build-directory-with-webpackjava
此問題下的回答主要提供了兩種方法(原理上是一種,都是用 file-loader 來處理 靜態的css文件):webpack
下面開始使用copy-webpack-plugin
的案例。
本人的環境爲 vue-cli-webpack 項目, 項目的webpack.prod.conf.js
中已經配置了此插件。
---
由於此處是在開發環境中使用 static 下的 css,所以,第一步是在 webpack.dev.conf.js
配置文件中,配置CopyWebpackPluginweb
var path = require('path') var CopyWebpackPlugin = require('copy-webpack-plugin') module.exports = merge(baseWebpackConfig, { context: path.resolve('./'), // 項目根目錄、這樣配置context就不須要修改 entry 中的app地址了 // ... 其餘配置 plugins: [ // ... 其餘插件 new CopyWebpackPlugin([{ from: path.resolve('./static'), ignore: ['.*'] }]) ] })
而後在index.html
文件中的head部分vue-cli
<link rel="stylesheet" href="./static/css/font-awesome.min.css"> <link rel="stylesheet" href="./static/css/iview.css"> <link rel="stylesheet" href="./static/css/ol.css">
才疏學淺,學海無涯啊npm