Bootstrap中是一種事實上的界面標準,標準到如今的網站大量的使用它。若是能夠使用webpack引入的bootstrap.css,就能夠一個npm install完成項目的依賴,而沒必要手工的添加到html內。 原本覺得在入口文件內加一行就行:javascript
- import 'bootstrap/dist/css/bootstrap.css'
複製代碼
而後安裝依賴:css
- npm i bootstrap url url-loader style-loader css-loader --save
複製代碼
實際上卻不是想象的那麼簡單。由於css文件內還引用了不少類型的字體文件和矢量圖文件。要引入它,必須同時提供css以外的類型的對應的loader:html
- //webpack.config.js:
- module.exports = {
- entry: {
- '1.js'
- },
- output: {
- filename: 'bundle.js'
- },
- module: {
- loaders: [
- { test: /\.css$/, loader: 'style-loader!css-loader' },
- { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file" },
- { test: /\.(woff|woff2)$/, loader:"url?prefix=font/&limit=5000" },
- { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream" },
- { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml" }
- ]
- }
- };
複製代碼
咱們在html文件內使用那麼一點點的bootstrap:java
- // c.html
- <html>
- <body>
- <ul class="nav nav-pills">
- <li role="presentation" class="active"><a href="#">Home</a></li>
- <li role="presentation"><a href="#">Profile</a></li>
- <li role="presentation"><a href="#">Messages</a></li>
- </ul>
- <script type="text/javascript" src="bundle.js"></script>
- </body>
- </html>
複製代碼
再次執行轉譯:jquery
打開瀏覽器:webpack
看到bootstrap那熟悉而太熟悉的界面。git 引入jquery 若是須要使用bootstrap的js插件的話,就必須首先引入jquery。引用jquery的一個方法是使用webpack插件。github 首先安裝jquery:web
其次使用插件裝入jquery,方法是修改webpack的配置文件,加入:npm
- plugins: [
- new webpack.ProvidePlugin({
- $: "jquery",
- jQuery: "jquery"
- })
- ]
複製代碼
在入口文件內加入代碼來作驗證:
- $("body").append("<div>hello world</div>")
複製代碼
若是成功,說明jquery加載成功。這樣你就能夠在入口js文件內加載bootstrap.js了:
- import 'bootstrap/dist/js/bootstrap.js'
複製代碼
排除錯誤 我確實在引入bootstrap的時候,遇到一個神奇的錯誤。在webpack轉譯時報錯,css-loader,unknown word樣子的錯誤。對webpack.config.js文件加入一個include屬性並指向到不存在的目錄便可。
- {
- test: /\.css$/,
- include: [
- path.resolve(__dirname, "not_exist_path")
- ],
- loader: "style!css"
- }
複製代碼
原始的issue在此:https://github.com/webpack/cs... 。我看看看到此答案時覺得是個玩笑。 |