Category: Без рубрики

  • Webpack

    \"\"

    1. Устанавливаем Bootstrap и Jquery через Bower
      $ bower install bootstrap jquery

       

    2. Устанавливаем необходимые плагины через npm
      $ npm install webpack css-loader style-loader file-loader url-loader --save-dev

       

    3. Создаем webpack.config.js и app.js:
      /*---- webpack.config.js ----*/
      
      var webpack = require(\'webpack\'),
          //путь к js файлам, у вас может быть другой
          path_src = \'src/js\',
          ExtractTextPlugin = require(\"extract-text-webpack-plugin\");
      
      module.exports = {
          entry: path_src + \'/app.js\',
          devtool: \'#source-map\',
          resolve: {
              modulesDirectories: [
                  \".\"
              ],
              alias: {
                  //ссылка на jquery lib
                  jquery: \"bower_components/jquery/dist/jquery.js\"
              }
          },
          output: {
              //папка куда он все выплюнет, находится в корне проекта
              path: \'dist\',
              filename: \'bundle.js\'
          },
          module: { 
              loaders: [
                  {
                      test: /\\.css$/,
                      loader: ExtractTextPlugin.extract(\"style-loader\", \"css-loader\")
                  },
                  { 
                      test: /\\.png$/, 
                      loader: \"url-loader?limit=100000\" 
                  },
                  { 
                      test: /\\.jpg$/, 
                      loader: \"file-loader\" 
                  },
                  {
                      test: /\\.(woff|woff2)(\\?v=\\d+\\.\\d+\\.\\d+)?$/, 
                      loader: \'url?limit=10000&mimetype=application/font-woff\'
                  },
                  {
                      test: /\\.ttf(\\?v=\\d+\\.\\d+\\.\\d+)?$/, 
                      loader: \'url?limit=10000&mimetype=application/octet-stream\'
                  },
                  {
                      test: /\\.eot(\\?v=\\d+\\.\\d+\\.\\d+)?$/, 
                      loader: \'file\'
                  },
                  {
                      test: /\\.svg(\\?v=\\d+\\.\\d+\\.\\d+)?$/, 
                      loader: \'url?limit=10000&mimetype=image/svg+xml\'
                  },
      
                  //webpack автоматически устранит зависимость bootstrap.js от jquery
                  {
                      test: /bower_components\\/dist\\/bootstrap\\/js\\//,
                      loader: \'imports?jQuery=jquery\'
                  },
              ]
          },
          plugins: [
              //чтобы в любом месте сразу писать через $
              new webpack.ProvidePlugin({
                  $: \"jquery\",
                  jQuery: \"jquery\"
              }),
              new ExtractTextPlugin(\'bundle.css\') 
          ]
      };
      
      
      /*---- app.js ----*/
      
      //подключаем bootstrap.css
      require(\'bower_components/bootstrap/dist/css/bootstrap.css\');
      
      //подключаем bootstrap.js
      require(\'bower_components/bootstrap/dist/js/bootstrap.js\');
      
      //подключаем файл стилей
      require(\'src/css/_main.scss\');
      
      

       

    4. Запускаем команду \”webpack\”
    5. Подключаем получившиеся bundle к странице:
      <!DOCTYPE html>
      <html xmlns=\"http://www.w3.org/1999/xhtml\">
      <head>
          <title></title>
          <meta charset=\"utf-8\">
          <link href=\"dist/bundle.css\" rel=\"stylesheet\" />
      </head>
      <body>
          <script src=\"dist/bundle.js\"></script>
      </body>
      </html>
      
    6. Проверяем и радуемся что все работает.