Webpack — настройка и загрузка файлов поставщиков, таких как bootstrap, font-awesome и т. д.
Недавно я начал создавать приложение MEAN stack 2.0, чтобы догнать Angular 2. Я новичок в webpack и столкнулся с некоторыми проблемами при попытке использовать тему загрузки, fontawesome, jquery и т. д. Я подумал, что поделюсь некоторыми своими решениями со всеми. .
Примечание. Сначала я выполнил шаги с сайта angular.io для настройки веб-пакета.
https://angular.io/docs/ts/latest/guide/webpack.html#!#entries-outputs
Проблема 1:
Как и в упомянутой документации, я связал свои файлы приложений с app.ts, а файлы поставщиков — с vendor.ts. Как загрузить bootstrap, fontawesome и bootswatch css?
Решение:
Добавьте следующие требования к поставщику.
import 'jquery';
import 'bootstrap/dist/js/bootstrap';
require('!!style!css!font-awesome/css/font-awesome.min.css');< br /> require('!!style!css!bootstrap/dist/css/bootstrap.css');
require('!!style!css!bootswatch/paper/bootstrap.min.css');
Проблема 2:
В приведенном ниже загрузчике возникла проблема с разрешением файлов шрифтов с потрясающими шрифтами из-за версии. Я использовал url-loader, потому что я думаю, что проблема была с URL-адресами импорта в файлах шрифтов. Это сработало, но повлияло на загрузку значков глифов.
{ test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/, loader: 'file?name=assets/[name].[hash].[ext]' },
Решение:
Простое решение состоит в том, чтобы игнорировать управление версиями файлов с потрясающими шрифтами.
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)?(\?v=[0–9]\.[0–9]\ .[0–9])?$/,
loader: 'file?name=fonts/[name].[hash].[ext]?'
},
Проблема 3
Bootstrap загружается, как и jQuery; но webpack не распознает jQuery. выдает ошибку "jQuery не определен".
Решение.Добавлен подключаемый модуль для jQuery для внедрения неявных глобальных переменных.
webpack.ProvidePlugin({
jQuery: ‘jquery’,
$: ‘jquery’,
jquery: ‘jquery’
})
Я буду регулярно публиковать больше обновлений и о своих приключениях с Angular2. Если есть что-то, что я могу улучшить или что-то не так, пожалуйста, прокомментируйте и дайте мне знать.