{"id":39297,"date":"2023-10-19T06:04:25","date_gmt":"2023-03-11T17:18:49","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/"},"modified":"2024-05-04T04:57:58","modified_gmt":"2024-05-03T20:57:58","slug":"angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/","title":{"rendered":"Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462"},"content":{"rendered":"<p>\u7531\u4e8e\u73af\u5883\u5df2\u7ecf\u51c6\u5907\u597d\uff0c\u6211\u5e0c\u671b\u80fd\u591f\u5f00\u59cb\u5236\u4f5c\u6837\u672c\u3002<br \/>\n\u6211\u8ba4\u4e3a\u8fd9\u4e5f\u53ef\u4ee5\u4f5c\u4e3aAngular + webpack + bootstrap\u5f00\u53d1\u73af\u5883\u642d\u5efa\u2460\u548c\u2461\u5185\u5bb9\u7684\u603b\u7ed3\u3002<\/p>\n<p>\u6e90\u4ee3\u7801\u5df2\u5728Github\u4e0a\u516c\u5f00\uff0c\u60a8\u4e5f\u53ef\u4ee5\u53c2\u8003\u90a3\u91cc\u7684\u5185\u5bb9\u3002<br \/>\n\u5b9e\u9645\u4e0a\uff0c\u4e0e\u5176\u9605\u8bfb\u8bf4\u660e\uff0c\u4e0d\u5982\u76f4\u63a5\u67e5\u770b\u6e90\u4ee3\u7801\u66f4\u5bb9\u6613\u7406\u89e3\u3002<br \/>\nhttps:\/\/github.com\/yohei-takara\/JavaScriptEnvironment.git<\/p>\n<h1>\u76ee\u5f55\u7ed3\u6784<\/h1>\n<p>\u4ee5\u524d\u5df2\u7ecf\u5199\u8fc7\u4e86\uff0c\u8003\u8651\u5230\u5728\u670d\u52a1\u5668\u7aef\u4f7f\u7528Java\u6216Ruby\uff0c\u56e0\u6b64\u51b3\u5b9a\u5728webpack\u751f\u6210\u7684\u6e90\u4ee3\u7801\u548c\u539f\u59cb\u4ee3\u7801\u4e2d\u8fdb\u884c\u5206\u5f00\u7ba1\u7406\uff0c\u5206\u522b\u653e\u5728\u4e0d\u540c\u7684\u76ee\u5f55\u4e0b\u3002<br \/>\n\u56e0\u4e3a\u6211\u60f3\u4e0d\u5230\u4e00\u4e2a\u597d\u7684\u539f\u59cb\u4ee3\u7801\u7ba1\u7406\u76ee\u5f55\u540d\u79f0\uff0c\u6240\u4ee5\u5c31\u79f0\u4e4b\u4e3awebpack\u5427&#8230;&#8230;<br \/>\n\u5509\uff5e\u611f\u89c9\u6709\u4e9b\u5fae\u5999\uff0c\u4f46\u603b\u4e4b\u5148\u4e0d\u7ea0\u7ed3\u4e86(\u00b4\ufe43\uff40)<\/p>\n<p>\u6211\u6253\u7b97\u5c06\u5b9e\u9645\u7684\u76ee\u5f55\u7ed3\u6784\u8bbe\u8ba1\u6210\u8fd9\u6837\u7684\u611f\u89c9\u3002<\/p>\n<pre class=\"post-pre\"><code>|--- public                \/\/ \u5916\u90e8\u306b\u516c\u958b\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea  \r\n|  |-- assets              \/\/ webpack \u3067 \u751f\u6210\u3057\u305fjs,css\u304c\u5410\u304b\u308c\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea  \r\n|  |-- index.html          \/\/ \u30b5\u30f3\u30d7\u30ebHTML\u3002\r\n|\r\n|--- webpack               \/\/ webpack \u3067\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u5bfe\u8c61\u3068\u306a\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u3053\u3053\u306b\u914d\u7f6e  \r\n|  |-- src                 \/\/ \u30b3\u30f3\u30d1\u30a4\u30eb\u524d\u306e\u30bd\u30fc\u30b9\u3092\u914d\u7f6e\r\n|  |-- package.json        \/\/ npm \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\n|  |-- webpack.config.js   \/\/ webpack \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\r\n|\r\n<\/code><\/pre>\n<h1>\u521b\u5efaHTML<\/h1>\n<p>\u4f5c\u4e3a\u52a8\u4f5c\u786e\u8ba4\uff0c\u53ea\u8981\u80fd\u786e\u8ba4Angular\u548cbootstrap\u80fd\u6b63\u5e38\u8fd0\u884c\u5373\u53ef\u3002<br \/>\n\u6211\u5e0c\u671bAngular\u5b9e\u73b0\u53cc\u5411\u6570\u636e\u7ed1\u5b9a\uff0c\u800cbootstrap\u53ea\u9700\u8981\u5b9e\u73b0\u7b80\u5355\u7684HTML\u5f39\u51fa\u63d0\u793a\u6846\u3002<\/p>\n<p>webpack\u751f\u6210\u7684css\u5c06\u5b58\u653e\u5728public\/assets\/stylesheets\/.bundle.css\u4e2d\u3002\u800cjavascript\u5c06\u5b58\u653e\u5728public\/assets\/javascript\/.bundle.js\u4e2d\u3002\u56e0\u6b64\uff0c\u5c06\u4f1a\u52a0\u8f7d\u8fd9\u4e9b\u6837\u5f0f\u3002<\/p>\n<pre class=\"post-pre\"><code>&lt;link rel=\"stylesheet\" href=\"assets\/stylesheets\/application.bundle.css\"&gt;\r\n<\/code><\/pre>\n<p>\u5173\u4e8eJavaScript\uff0c<\/p>\n<pre class=\"post-pre\"><code>&lt;script type=\"text\/javascript\" src=\"assets\/javascript\/application.bundle.js\"&gt;&lt;\/script&gt;\r\n<\/code><\/pre>\n<h3>\u786e\u8ba4Bootstrap\u5de5\u5177\u63d0\u793a<\/h3>\n<p>\u5173\u4e8ebootstrap\u7684\u5de5\u5177\u63d0\u793a\uff0c\u7531\u4e8e\u5b98\u65b9\u975e\u5e38\u8be6\u7ec6\u5730\u5217\u51fa\u4e86\u4f7f\u7528\u65b9\u6cd5\u7b49\u7ec6\u8282\uff0c\u56e0\u6b64\u5728\u6b64\u7701\u7565\u4e0d\u8868\u3002<br \/>\nhttp:\/\/v4-alpha.getbootstrap.com\/components\/tooltips\/<\/p>\n<p>\u6211\u5011\u6c7a\u5b9a\u5c0d\u65bcFont Awesome\u7684\u5716\u6a19\u63d0\u4f9btooltip\u3002<\/p>\n<pre class=\"post-pre\"><code>&lt;div data-toggle=\"tooltip\" data-placement=\"top\" data-html=\"true\" title=\"&lt;div class='tooltip-inner'&gt;Webpack Environment!!!!!&lt;\/div&gt;\"&gt;\r\n    &lt;i class=\"fa fa-thumbs-o-up fa-5x\" aria-hidden=\"true\"&gt;&lt;\/i&gt;\r\n&lt;\/div&gt;\r\n<\/code><\/pre>\n<h3>\u68c0\u67e5Angular\u53cc\u5411\u6570\u636e\u7ed1\u5b9a\u3002<\/h3>\n<p>\u5c06\u8f93\u5165\u7684\u5185\u5bb9\u4e0e\u5c4f\u5e55\u4e0a\u663e\u793a\u7684\u5185\u5bb9\u76f8\u540c\u7684\u5f62\u5f0f\u8fdb\u884c\u6784\u5efa\u3002<br \/>\n\u901a\u8fc7\u66f4\u6539\u8f93\u5165\u5185\u5bb9\uff0c\u53ef\u4ee5\u6539\u53d8\u663e\u793a\u7684\u6587\u5b57\uff0c\u4ee5\u68c0\u67e5\u6570\u636e\u7ed1\u5b9a\u3002<\/p>\n<pre class=\"post-pre\"><code>&lt;div ng-app=\"app\"  ng-cloak&gt;\r\n    &lt;div ng-controller=\"webpackEnvironmentCtrl\" ng-init=\"init()\"&gt;\r\n        &lt;input type=\"text\" ng-model=\"demo\" ng-value=\"demo\"&gt;\r\n        &lt;div&gt;{{ demo }} &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n<\/code><\/pre>\n<h1>\u5199\u5267\u672c<\/h1>\n<p>\u4e3a\u4e86\u4f7fAngular\u548cBootstrap\u63d0\u793a\u6846\u5728JavaScript\u4e2d\u5de5\u4f5c\uff0c\u4f60\u9700\u8981\u7f16\u5199\u4e24\u4e2ajQuery\u4ee3\u7801\u3002<\/p>\n<h3>\u5de5\u5177\u63d0\u793a<\/h3>\n<p>\u5982\u679c\u5728\u5b98\u65b9\u7f51\u9875\u4e0a\u641c\u7d22\u7684\u8bdd<\/p>\n<pre class=\"post-pre\"><code>$(function () {\r\n  $('[data-toggle=\"tooltip\"]').tooltip()\r\n})\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u5199\u7684\u8bdd\uff0c\u5728\u4f7f\u7528angular\u7684ng-repeat\u7b49\u52a8\u6001\u66f4\u6539DOM\u65f6\uff0ctooltip\u5c06\u65e0\u6cd5\u663e\u793a\uff08\u5bf9\u4e8e\u52a8\u6001\u751f\u6210\u7684\u90e8\u5206\uff09\u3002\u6240\u4ee5\u7a0d\u4f5c\u4fee\u6539\uff0c<\/p>\n<pre class=\"post-pre\"><code><span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"kd\">function<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"c1\">\/\/\u30c4\u30fc\u30eb\u30c1\u30c3\u30d7<\/span>\r\n    <span class=\"nx\">$<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">body<\/span><span class=\"dl\">'<\/span><span class=\"p\">).<\/span><span class=\"nx\">tooltip<\/span><span class=\"p\">({<\/span>\r\n        <span class=\"na\">selector<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">[data-toggle=\"tooltip\"]<\/span><span class=\"dl\">'<\/span>\r\n    <span class=\"p\">});<\/span>\r\n<span class=\"p\">});<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u8bbe\u60f3\u8fd9\u79cd\u60c5\u51b5\u3002<\/p>\n<h3>Angular \uff08\u89d2\u5ea6\uff09<\/h3>\n<p>\u5173\u4e8eangular\uff0c<br \/>\n\u56e0\u4e3a\u8fd8\u8981\u786e\u8ba4webpack\uff0c\u6240\u4ee5\u6ca1\u6709\u5fc5\u8981\u7279\u610f\u5206\u5f00\uff0c<br \/>\n\u6211\u4eec\u51b3\u5b9a\u628amodule\u548ccontorller\u5206\u522b\u521b\u5efa\u4e3a\u4e24\u4e2a\u6587\u4ef6\u3002<\/p>\n<p>\u7531\u4e8e\u672a\u6765\u6211\u4eec\u8ba1\u5212\u5c06\u6a21\u5757\u6269\u5c55\u4e3aSAP\uff0c\u6240\u4ee5\u6211\u9884\u5148\u5c06ngRoute\u8fdb\u884c\u4e86\u4f9d\u8d56\u6ce8\u5165\u3002\u5c31\u672c\u6b21\u800c\u8a00\uff0c\u8fd9\u5e76\u4e0d\u662f\u5fc5\u9700\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">exports<\/span><span class=\"p\">.<\/span><span class=\"nx\">angApp<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">angular<\/span><span class=\"p\">.<\/span><span class=\"nx\">module<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">app<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">ngRoute<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]);<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u5c06\u521b\u5efa\u4e00\u4e2a\u63a7\u5236\u5668\uff0c\u53ea\u9700\u7f16\u5199\u521d\u59cb\u5316\u5904\u7406\u7684\u7b80\u5355\u4ee3\u7801\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kd\">let<\/span> <span class=\"nx\">angModule<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.\/module<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.\/config<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"nx\">angModule<\/span><span class=\"p\">.<\/span><span class=\"nx\">angApp<\/span><span class=\"p\">.<\/span><span class=\"nx\">controller<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">webpackEnvironmentCtrl<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"dl\">'<\/span><span class=\"s1\">$scope<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">$log<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"kd\">function<\/span><span class=\"p\">(<\/span><span class=\"nx\">$scope<\/span><span class=\"p\">,<\/span> <span class=\"nx\">$log<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">$scope<\/span><span class=\"p\">.<\/span><span class=\"nx\">init<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nx\">$log<\/span><span class=\"p\">.<\/span><span class=\"nx\">debug<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">Webpack Environment!!!!!!!!!!!<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"nx\">$scope<\/span><span class=\"p\">.<\/span><span class=\"nx\">demo<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Webpack Environment!!!!!!!!!!!<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n    <span class=\"p\">};<\/span>\r\n\r\n<span class=\"p\">}]);<\/span>\r\n<\/code><\/pre>\n<p>\u5728\u7f16\u5199\u8fc7\u7a0b\u4e2d\uff0c\u6211\u8003\u8651\u5230\u53ea\u6709\u5728\u5f00\u53d1\u65f6\u624d\u60f3\u8981\u8f93\u51fa\u8c03\u8bd5\u65e5\u5fd7\uff0c\u56e0\u6b64\u6211\u6dfb\u52a0\u4e86\u914d\u7f6e\u9009\u9879\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kd\">let<\/span> <span class=\"nx\">angModule<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">.\/module<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"nx\">angModule<\/span><span class=\"p\">.<\/span><span class=\"nx\">angApp<\/span><span class=\"p\">.<\/span><span class=\"nx\">config<\/span><span class=\"p\">([<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">$logProvider<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"kd\">function<\/span><span class=\"p\">(<\/span><span class=\"nx\">$logProvider<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"c1\">\/\/ $log.debug \u306e\u8868\u793a\u8a2d\u5b9a<\/span>\r\n    <span class=\"nx\">$logProvider<\/span><span class=\"p\">.<\/span><span class=\"nx\">debugEnabled<\/span><span class=\"p\">(<\/span><span class=\"kc\">true<\/span><span class=\"p\">);<\/span>\r\n<span class=\"p\">}]);<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u5047\u8bbe\u8fd9\u6837\u3002<\/p>\n<h1>\u4f7f\u7528Webpack\u8fdb\u884c\u7f16\u8bd1<\/h1>\n<p>\u6211\u4f1a\u521b\u5efa\u4e00\u4e2a\u53ef\u4ee5\u7f16\u8bd1\u7684js\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\">\/\/ style library<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">bootstrap\/dist\/css\/bootstrap.css<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">bootstrap\/dist\/css\/bootstrap-theme.min.css<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">font-awesome\/css\/font-awesome.css<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"c1\">\/\/ javascript library<\/span>\r\n<span class=\"kd\">let<\/span> <span class=\"nx\">$<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">jquery<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"kd\">let<\/span> <span class=\"nx\">angular<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">angular<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">bootstrap\/dist\/js\/bootstrap.js<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">angular-cookies<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">angular-route<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"c1\">\/\/ jquery module<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">.\/javascript\/jquery\/actionTooltip<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"c1\">\/\/ angular module<\/span>\r\n<span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">.\/javascript\/angular\/controller<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u5011\u5c07\u4f7f\u7528Webpack\u7de8\u8b6f\u9019\u500b\u5df2\u5275\u5efa\u7684JavaScript\u6a94\u6848\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">DEBUG<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">process<\/span><span class=\"p\">.<\/span><span class=\"nx\">env<\/span><span class=\"p\">.<\/span><span class=\"nx\">NODE_ENV<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">development<\/span><span class=\"dl\">'<\/span> <span class=\"o\">||<\/span> <span class=\"nx\">process<\/span><span class=\"p\">.<\/span><span class=\"nx\">env<\/span><span class=\"p\">.<\/span><span class=\"nx\">NODE_ENV<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">;<\/span>\r\n<span class=\"kd\">var<\/span> <span class=\"nx\">webpack<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">webpack<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\r\n<span class=\"kd\">var<\/span> <span class=\"nx\">path<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">path<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"kd\">var<\/span> <span class=\"nx\">ExtractTextPlugin<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">extract-text-webpack-plugin<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"kd\">var<\/span> <span class=\"nx\">devtool<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">DEBUG<\/span> <span class=\"p\">?<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">#inline-source-map<\/span><span class=\"dl\">'<\/span> <span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">#eval<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"kd\">var<\/span> <span class=\"nx\">plugins<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">webpack<\/span><span class=\"p\">.<\/span><span class=\"nx\">ProvidePlugin<\/span><span class=\"p\">({<\/span> <span class=\"na\">jQuery<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">jquery<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">$<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">jquery<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">jquery<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">jquery<\/span><span class=\"dl\">\"<\/span> <span class=\"p\">}),<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">ExtractTextPlugin<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">stylesheets\/[name].bundle.css<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">];<\/span>\r\n\r\n<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">DEBUG<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nx\">plugins<\/span><span class=\"p\">.<\/span><span class=\"nx\">push<\/span><span class=\"p\">(<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">webpack<\/span><span class=\"p\">.<\/span><span class=\"nx\">optimize<\/span><span class=\"p\">.<\/span><span class=\"nx\">UglifyJsPlugin<\/span><span class=\"p\">({<\/span><span class=\"na\">compress<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span><span class=\"na\">warnings<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">}})<\/span> <span class=\"p\">);<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">exports<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"na\">entry<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"dl\">'<\/span><span class=\"s1\">application<\/span><span class=\"dl\">'<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/src\/webpackEnvironment.js<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">},<\/span>\r\n    <span class=\"na\">output<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"na\">path<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">..\/public\/assets<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"na\">filename<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">javascript\/[name].bundle.js<\/span><span class=\"dl\">'<\/span>\r\n    <span class=\"p\">},<\/span>\r\n    <span class=\"na\">devtool<\/span><span class=\"p\">:<\/span> <span class=\"nx\">devtool<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"na\">plugins<\/span><span class=\"p\">:<\/span> <span class=\"nx\">plugins<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"na\">resolve<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"na\">root<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span> <span class=\"nx\">path<\/span><span class=\"p\">.<\/span><span class=\"nx\">join<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">node_modules<\/span><span class=\"dl\">\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">],<\/span>\r\n      <span class=\"na\">extensions<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"dl\">''<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.js<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.css<\/span><span class=\"dl\">'<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"p\">},<\/span>\r\n    <span class=\"na\">module<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"na\">loaders<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n            <span class=\"c1\">\/\/ **IMPORTANT** This is needed so that each bootstrap js file required by<\/span>\r\n            <span class=\"c1\">\/\/ bootstrap-webpack has access to the jQuery object<\/span>\r\n            <span class=\"p\">{<\/span> <span class=\"na\">test<\/span><span class=\"p\">:<\/span> <span class=\"sr\">\/bootstrap<\/span><span class=\"se\">\\\/<\/span><span class=\"sr\">js<\/span><span class=\"se\">\\\/<\/span><span class=\"sr\">\/<\/span><span class=\"p\">,<\/span> <span class=\"na\">loader<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">imports?jQuery=jquery<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\r\n\r\n            <span class=\"c1\">\/\/ loads css<\/span>\r\n            <span class=\"p\">{<\/span> <span class=\"na\">test<\/span><span class=\"p\">:<\/span> <span class=\"sr\">\/<\/span><span class=\"se\">\\.<\/span><span class=\"sr\">css$\/<\/span><span class=\"p\">,<\/span> <span class=\"na\">loader<\/span><span class=\"p\">:<\/span> <span class=\"nx\">ExtractTextPlugin<\/span><span class=\"p\">.<\/span><span class=\"nx\">extract<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">style-loader<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">css-loader<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">},<\/span>\r\n            <span class=\"p\">{<\/span> <span class=\"na\">test<\/span><span class=\"p\">:<\/span> <span class=\"sr\">\/<\/span><span class=\"se\">\\.<\/span><span class=\"sr\">svg<\/span><span class=\"se\">(\\?<\/span><span class=\"sr\">v=<\/span><span class=\"se\">\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">\\.\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">\\.\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">)?<\/span><span class=\"sr\">$\/<\/span><span class=\"p\">,<\/span> <span class=\"na\">loader<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">url-loader?mimetype=image\/svg+xml<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\r\n            <span class=\"p\">{<\/span> <span class=\"na\">test<\/span><span class=\"p\">:<\/span> <span class=\"sr\">\/<\/span><span class=\"se\">\\.<\/span><span class=\"sr\">woff<\/span><span class=\"se\">(\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">)?(\\?<\/span><span class=\"sr\">v=<\/span><span class=\"se\">\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">\\.\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">\\.\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">)?<\/span><span class=\"sr\">$\/<\/span><span class=\"p\">,<\/span> <span class=\"na\">loader<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">url-loader?mimetype=application\/font-woff<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\r\n            <span class=\"p\">{<\/span> <span class=\"na\">test<\/span><span class=\"p\">:<\/span> <span class=\"sr\">\/<\/span><span class=\"se\">\\.<\/span><span class=\"sr\">eot<\/span><span class=\"se\">(\\?<\/span><span class=\"sr\">v=<\/span><span class=\"se\">\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">\\.\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">\\.\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">)?<\/span><span class=\"sr\">$\/<\/span><span class=\"p\">,<\/span> <span class=\"na\">loader<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">url-loader?mimetype=application\/font-woff<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\r\n            <span class=\"p\">{<\/span> <span class=\"na\">test<\/span><span class=\"p\">:<\/span> <span class=\"sr\">\/<\/span><span class=\"se\">\\.<\/span><span class=\"sr\">ttf<\/span><span class=\"se\">(\\?<\/span><span class=\"sr\">v=<\/span><span class=\"se\">\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">\\.\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">\\.\\d<\/span><span class=\"sr\">+<\/span><span class=\"se\">)?<\/span><span class=\"sr\">$\/<\/span><span class=\"p\">,<\/span> <span class=\"na\">loader<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">url-loader?mimetype=application\/font-woff<\/span><span class=\"dl\">'<\/span> <span class=\"p\">}<\/span>\r\n        <span class=\"p\">]<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">};<\/span>\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u80fd\u591f\u4fee\u6539\u751f\u4ea7\u548c\u5f00\u53d1\u73af\u5883\uff0c\u6211\u5c06\u521b\u5efa\u4e00\u4e2anpm\u811a\u672c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">name<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">webpackTest<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">version<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">1.0.0<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">description<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">webpack test project<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">main<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">webpack.config.js<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">scripts<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">test<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">echo <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">Error: no test specified<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\"> &amp;&amp; exit 1<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">clean<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">rm -r node_modules\/ &amp;&amp; npm cache clean<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">devBuild<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">NODE_ENV=development webpack --display-error-details<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">build<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">NODE_ENV=production webpack<\/span><span class=\"dl\">\"<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">keywords<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[],<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">author<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">license<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">ISC<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">dependencies<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">angular<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^1.5.9<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">angular-cookies<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^1.5.9<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">angular-route<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^1.5.9<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">bootstrap<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^3.3.7<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">font-awesome<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^4.7.0<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">jquery<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^2.2.4<\/span><span class=\"dl\">\"<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"dl\">\"<\/span><span class=\"s2\">devDependencies<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">css-loader<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^0.26.1<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">extract-text-webpack-plugin<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^1.0.1<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">file-loader<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^0.9.0<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">style-loader<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^0.13.1<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">url-loader<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^0.5.7<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"dl\">\"<\/span><span class=\"s2\">webpack<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">^1.13.3<\/span><span class=\"dl\">\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u73b0\u5728\u51c6\u5907\u5de5\u4f5c\u5df2\u7ecf\u5b8c\u6210\uff0c\u6211\u4eec\u5f00\u59cb\u8fd0\u884cwebpack\u3002<\/p>\n<pre class=\"post-pre\"><code>$ npm run build\r\n<\/code><\/pre>\n<p>\u53c8\u6216\u8005<\/p>\n<pre class=\"post-pre\"><code>$ npm run devBuild\r\n<\/code><\/pre>\n<p>\u672c\u756a\u7528\u548c\u5f00\u53d1\u7528\u4e4b\u95f4\u7684\u533a\u522b\u662f\uff0c\u672c\u756a\u7528\u662f\u8fdb\u884c &#8220;\u65e0souce-map\u3001\u538b\u7f29\u7f16\u8bd1&#8221;\uff0c\u800c\u5f00\u53d1\u7528\u662f\u8fdb\u884c &#8220;\u6709souce-map\u3001\u672a\u538b\u7f29\u7f16\u8bd1&#8221;\u3002<\/p>\n<p>\u53ea\u8981\u5728 public\/assets\/ \u4e0b\u751f\u6210\u4e86 js \u548c css \u6587\u4ef6\uff0c\u5c31\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u6253\u5f00 index.html \u5e76\u786e\u8ba4\u662f\u5426\u6b63\u5e38\u8fd0\u884c\uff0c\u5b8c\u6210\u4e86\u3002<\/p>\n<h1>\u8fd9\u6b21\u5c1d\u8bd5\u4e2d\u7684\u95ee\u9898<\/h1>\n<p>\u5728Angular\u7684config\u4e2d\uff0c\u914d\u7f6e$logProvider\u7684\u8bbe\u5b9a\u3002<\/p>\n<pre class=\"post-pre\"><code>$logProvider.debugEnabled(true);\r\n<\/code><\/pre>\n<p>\u5c3d\u7ba1\u6211\u4eec\u901a\u8fc7webpack\u6210\u529f\u5730\u5c06production\u548cdevelop\u8fdb\u884c\u4e86\u533a\u5206\uff0c\u4f46\u662f\u73b0\u5728\u6211\u4eec\u4e0d\u5f97\u4e0d\u624b\u52a8\u4fee\u6539\u6e90\u4ee3\u7801\u6765\u8c03\u8bd5\u65e5\u5fd7\uff0c\u8fd9\u771f\u7684\u5f88\u4e0d\u597d\u3002<\/p>\n<p>\u6211\u5e0c\u671b\u80fd\u591f\u901a\u8fc7webpack\u6765\u5b9e\u73b0\u5728\u8fd9\u91cc\u7684\u5207\u6362\u3002 \u256d( \uff65\u3142\uff65)\u0648 \u0311\u0311 \uff78\uff9e\uff6f !<\/p>\n<h3>2016\/12\/09 \u8865\u5145\u8bb0\u5f55<\/h3>\n<p>\u6839\u636e http:\/\/qiita.com\/mikakane\/items\/5ab96c4c7e187ab6c9f1 \u7684\u6587\u7ae0\u8fdb\u884c\u6a21\u4eff\uff0c\u901a\u8fc7\u4fee\u6539webpack\u4ee5\u66f4\u6539debug\u65e5\u5fd7\u7684\u8f93\u51fa\u4e0e\u5426\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">LOG_ENV<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">false<\/span><span class=\"p\">;<\/span>\r\n<span class=\"kd\">var<\/span> <span class=\"nx\">plugins<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\r\n\r\n<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">DEBUG<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"nx\">LOG_ENV<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">;<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"nx\">plugins<\/span><span class=\"p\">.<\/span><span class=\"nx\">push<\/span><span class=\"p\">(<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">webpack<\/span><span class=\"p\">.<\/span><span class=\"nx\">DefinePlugin<\/span><span class=\"p\">(<\/span> <span class=\"p\">{<\/span> <span class=\"na\">DEBUG_LOG_ENV<\/span><span class=\"p\">:<\/span> <span class=\"nx\">LOG_ENV<\/span>  <span class=\"p\">})<\/span> <span class=\"p\">);<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nx\">$logProvider<\/span><span class=\"p\">.<\/span><span class=\"nx\">debugEnabled<\/span><span class=\"p\">(<\/span> <span class=\"nx\">DEBUG_LOG_ENV<\/span> <span class=\"p\">);<\/span>\r\n<\/code><\/pre>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u4f7f\u7528webpack\u63d2\u4ef6DefinePlugin\u6765\u8bbe\u7f6eDEBUG_LOG_ENV\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>DEBUG_LOG_ENV\u7684\u503c\u5728\u751f\u4ea7\u73af\u5883\u4e0b\u4e3atrue\uff0c\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u4e3afalse\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u5728Angular\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\uff0c\u5c06DEBUG_LOG_ENV\u8bbe\u7f6e\u4e3a$logProvider.debugEnabled()\u7684\u503c\u3002<\/ol>\n<p>\u73b0\u5728\uff0c\u5728\u5f00\u53d1\u65f6\u53ef\u4ee5\u914d\u7f6ewebpack\u7684\u8f6c\u8bd1\uff0c\u4f7f\u5176\u80fd\u591f\u8f93\u51falog\u5e76\u65b9\u4fbf\u8fdb\u884c\u8c03\u8bd5\uff0c\u800c\u5728\u751f\u4ea7\u73af\u5883\u4e2d\u5219\u4e0d\u4f1a\u8f93\u51falog\u3002<\/p>\n<p>\u53ea\u8981\u50cf\u8fd9\u6837\uff0c\u5728\u5404\u4e2a\u73af\u5883\u4e2d\u9700\u8981\u8bbe\u7f6e\u4e0d\u540c\u7684\u503c\u65f6\uff0c\u5e94\u8be5\u53ef\u4ee5\u5728\u4e0d\u66f4\u6539\u6e90\u7801\u7684\u60c5\u51b5\u4e0b\u8fdb\u884c\u8bbe\u7f6e\uff0c\u8fd9\u6837\u770b\u6765\u5e94\u7528\u573a\u666f\u5e94\u8be5\u5f88\u591a\u3002<\/p>\n<p>Angular + webpack + bootstrap \u7684\u5f00\u53d1\u73af\u5883\u642d\u5efa\u2460<br \/>\nAngular + webpack + bootstrap \u7684\u5f00\u53d1\u73af\u5883\u642d\u5efa\u2461<br \/>\nAngular + webpack + bootstrap \u7684\u5f00\u53d1\u73af\u5883\u642d\u5efa\u2462<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7531\u4e8e\u73af\u5883\u5df2\u7ecf\u51c6\u5907\u597d\uff0c\u6211\u5e0c\u671b\u80fd\u591f\u5f00\u59cb\u5236\u4f5c\u6837\u672c\u3002 \u6211\u8ba4\u4e3a\u8fd9\u4e5f\u53ef\u4ee5\u4f5c\u4e3aAngular + webpack + boo [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-39297","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462\" \/>\n<meta property=\"og:description\" content=\"\u7531\u4e8e\u73af\u5883\u5df2\u7ecf\u51c6\u5907\u597d\uff0c\u6211\u5e0c\u671b\u80fd\u591f\u5f00\u59cb\u5236\u4f5c\u6837\u672c\u3002 \u6211\u8ba4\u4e3a\u8fd9\u4e5f\u53ef\u4ee5\u4f5c\u4e3aAngular + webpack + boo [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-11T17:18:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T20:57:58+00:00\" \/>\n<meta name=\"author\" content=\"\u9038, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u9038, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/\",\"name\":\"Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-03-11T17:18:49+00:00\",\"dateModified\":\"2024-05-03T20:57:58+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\",\"name\":\"\u9038, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"caption\":\"\u9038, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462\/","og_locale":"zh_CN","og_type":"article","og_title":"Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462","og_description":"\u7531\u4e8e\u73af\u5883\u5df2\u7ecf\u51c6\u5907\u597d\uff0c\u6211\u5e0c\u671b\u80fd\u591f\u5f00\u59cb\u5236\u4f5c\u6837\u672c\u3002 \u6211\u8ba4\u4e3a\u8fd9\u4e5f\u53ef\u4ee5\u4f5c\u4e3aAngular + webpack + boo [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-03-11T17:18:49+00:00","article_modified_time":"2024-05-03T20:57:58+00:00","author":"\u9038, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u9038, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/","name":"Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-03-11T17:18:49+00:00","dateModified":"2024-05-03T20:57:58+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"Angular + webpack + bootstrap\u7684\u5f00\u53d1\u73af\u5883\u914d\u7f6e\u2462"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487","name":"\u9038, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","caption":"\u9038, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/angular-webpack-bootstrap%e7%9a%84%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae%e2%91%a2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=39297"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39297\/revisions"}],"predecessor-version":[{"id":96252,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/39297\/revisions\/96252"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=39297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=39297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=39297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}