zoukankan      html  css  js  c++  java
  • webpack入门

    WebPack的安装

    1. 安装命令
      $ npm install webpack -g
    2. 使用webpack
      $ npm init  # 会自动生成一个package.json文件
      $ npm install webpack --save-dev #将webpack增加到package.json文件中
    3. 如果想要安装开发工具
      $ npm install webpack-dev-server --save-dev

    WebPack开始使用

    这里有最基本的使用方法,给大家一个感性的认识

    1. 正确安装了WebPack,方法可以参考上面
    2. 书写entry.js文件
      document.write("看看如何让它工作!");
    3. 书写index.html文件
      <html>
      <head>
      <meta charset="utf-8">
      </head>
      <body>
      <script type="text/javascript" src="bundle.js" charset="utf-8"></script>
      </body>
      </html>
    4. 执行命令,生成bundle.js文件
      $ webpack ./entry.js bundle.js
    5. 在浏览器中打开index.html文件,可以正常显示出预期
    6. 增加一个content.js文件
      module.exports = "现在的内容是来自于content.js文件!";
    7. 修改entry.js文件
      document.write(require("./content.js"));
    8. 执行第四步的命令

    进行加载器试验

    1. 增加style.css文件
      body {
      background: yellow;
      }
    2. 修改entry.js文件
      require("!style-loader!css-loader!./style.css"); document.write(require("./content.js"));

                (这里要注意,webpack2不支持简写!style!css!./style.css,亲试)

    1. 执行命令,安装加载器
      $ npm install css-loader style-loader   # 安装的时候不使用 -g
    2. 执行webpack命令,运行看效果
    3. 可以在命令行中使用loader
      $ webpack ./entry.js bundle.js --module-bind "css=style!css"

    配置文件

    创建我们webpack的配置文件webpack.config.js:(这个文件需要手码的哦)

    复制代码
    var webpack = require('webpack');
    var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');
    
    module.exports = {
        entry: "./main.js",
        output: {
            path: './build', // 图片和 JS 会打包到这里来
            filename: "bundle.js"
        },
        module: {
            loaders: [
                {
                    test: /.css$/,
                    loader: "style-loader!css-loader"
                },
    
                {
                    test: /.less$/,
                    loader: 'style-loader!css-loader!less-loader'
                }, // 用 ! 来连接多个 loader
    
                {
                    test: /.(png|jpg)$/,
                    loader: 'url-loader?limit=8192'
                } // 内联 base64 URLs, 限定 <=8k 的图片, 其他的用 URL
    
            ]
        },
        resolve: {
            extensions: ['', '.js', '.json', 'coffee']
        },
        plugins: [
            new webpack.HotModuleReplacementPlugin(),
            new webpack.NoErrorsPlugin()
        ]
    
    }
    复制代码

    对这个配置文件解释下:

    1) entry:entry可以是个字符串或数组或者是对象。指定打包的入口文件,一个键值对,就是一个入口文件

    2) output:包结果文件的名称,在这里我指定它在./build的文件夹打包输出

    3) resolve:用于指明程序自动补全识别哪些后缀,
         注意一下, extensions 第一个是空字符串! 对应不需要后缀的情况.

    4) module:以及一些正则。当需要加载的文件匹配test的正则时,就会调用后面的loader对文件进行处理,这正是webpack强大的原因。

       1.js的引用

       比如这里定义了凡是.js结尾的文件都是用babel-loader做处理,而.jsx结尾的文件会先经过jsx-loader处理,然后经过babel-loader处理。当然这些loader也需要通过npm install安装

       2.样式及图片的引用

    require('./bootstrap.css'); require('./myapp.sass'); var img = document.createElement('img'); img.src = require('./glyph.png');

    当你引用 CSS(或者 SASS 吧), Webpack 会将 CSS 内联到 JavaScript 包当中, require() 会在页面当中插入一个<style>标签. 当你引入图片, Webpack 在包当中插入对应图片的 URL, 这个 URL 是由require()返回, 而图片可能被转化成 base64 格式的 dataUrl。但是注意,所有这些要在 webpack.config.js 文件写好对应的 loader:

    5) plugins: 这里定义了需要使用的插件,

    比如commonsPlugin在打包多个入口文件时会提取出公用的部分,生成common.js

    这里还配置了NoErrorsPlugin插件,用来跳过编译时出错的代码并记录,使编译后运行时的包不会发生错误:当然Webpack还有很多其他的配置,具体可以参照它的配置文档

    发布服务器

    1. 安装运行服务器
      $ npm install webpack-dev-server -g
      $ webpack-dev-server --progress --colors
    2. 服务器可以自动生成和刷新,修改代码保存后自动更新画面
      打开http://localhost:8080/webpack-dev-server/bundle可以看到编译后的网页,这会绑定一个小型express服务器到localhost:8080,来为你的静态资源及bundle(自动编译)服务。通过访问http://localhost:8080/webpack-dev-server/bundle,bundle每次重编译后浏览器页面都会自动更新。
  • 相关阅读:
    ios9 之后 配置百度地图出现的错误
    While reading XXX pngcrush caught libpng error: N
    主题:Java WebService 简单实例
    win7下如何建立ftp服务器
    64.Minimum Path Sum
    63.Unique Path II
    62.Unique Paths
    32.Longest Valid Parenttheses
    105.Construct Binary Tree from Preorder and Inorder Traversal
    83.Remove Duplicates from Sorted List
  • 原文地址:https://www.cnblogs.com/zhus/p/6486635.html
Copyright © 2011-2022 走看看