webpack

webpack

webpack简介

webpack 示例

源代码来源:how2java—webpack

简单打包

命令行方式

安装webpack,使用全局安装模式。
cnpm install -g webpack@1.13.2

cnpm install -g webpack@1.13.2

一个简单的a.js:

document.write("hello webpack");

运行打包命令:webpack a.js bundle.js

一个index.html文件:

<html>
    <head>
        <script src="bundle.js"></script>
    </head>
</html>

测试后:可以看到成功打包了。
这里直接使用打开文件的方式。

配置文件 方式

webpack.config.js:

module.exports = {
  entry: './a.js',
  output: {
    filename: 'bundle.js'
  }
};

这里直接使用打开文件的方式。

配置服务器

使用 WEBPACK-DEV-SERVER

安装:
全局安装cnpm install -g webpack-dev-server@1.15.0

运行:
使用webpack-dev-server --open:
运行相应的浏览器,并打开默认的index.html页面

显示:
显示如下地址的访问:http://localhost:8080/webpack-dev-server/

端口:

module.exports = {
    entry: './a.js',
    output: {
        filename: 'bundle.js'
    },
    devServer: {
        port:8088
    }
}

热更新:

var webpack = require('webpack')
module.exports = {
    entry: './a.js',
    output: {
        filename: 'bundle.js'
    },
   plugins:[
        new webpack.HotModuleReplacementPlugin()
    ],
   devServer: {
        port:8088,
        inline:true,
        hot:true
    }
}
npm 启动方式

运行npm init -y:配置得到初始的json文件。

{
  "name": "webpack-demo",
  "version": "1.0.0",
  "main": "a.js",
  "scripts": {
    "dev": "webpack-dev-server --open"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "webpack": "^1.13.2"
  },
  "devDependencies": {},
  "description": ""
}

运行:npm run devnpm run dev
dev指示脚本的内容。
使用http://localhost:8088/测试。

多个入口文件

配置一个如下的json文件:

module.exports = {
    entry: {
        bundle1: './a.js',
        bundle2: './b.js'
    },
    output: {
        filename: '[name].js'
    },
    devServer: {
        port:8088
    }
}

bundle1 对应a.js 而bundle2 对应 b.js。

兼容es6

有的时候浏览器,推出一些新的特性却没有传播。
babel 安装
一个es6写法文件 a.js

const name = 'ES6'
document.write(`hello ${name}`)

package.config.js配置:
test: /\.js$/,:表示仅仅转换js‘文件。
loader: 'babel',:使用babel loader进行 es6 转换。
query:{ presets: ['latest'] }: latest 表示用最新的语法规则进行

loaders: [
            {
                test: /\.js$/,
                loader: 'babel',
                query:{
                    presets: ['latest']
                }
            }

然后发现修改完毕的js语句应该是符合es5标准的了。

css模块引入

在webpack的概念之中,所有的文件都是模块。
通过如下命令安装css-loader和style-loader:npm install style-loader@0.13.1 css-loader@0.25.0 --save-dev

准备css文件:

body {
    background-color: blue;
}

在配置文件中增加.css的配置:

module.exports = {
    entry: './a.js',
    output: {
        filename: 'bundle.js'
    },
    devServer: {
        port:8088
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: 'babel',
                query:{
                    presets: ['latest']
                }
            },
            {
                test:/\.css/,
                loader:'style-loader!css-loader'
            }
        ]
    }
}

修改a.js:

require("./style.css")
const name = 'ES6'
document.write(`hello ${name}`)

参考

源代码来源:how2java—webpack

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值