您现在的位置:首页 >> 前端 >> 内容

用Webpack来实现代码打包(代码实例教程)

时间:2018/6/26 15:01:36 点击: 22

  核心提示:初识webpack及环境搭建全局安装npm install -g webpack准备一个服务器并监听npm install -g webpack-dev-server打包文件webpack 需要打包的...
初识webpack及环境搭建

全局安装

npm install -g webpack

准备一个服务器并监听

npm install -g webpack-dev-server

打包文件

webpack <需要打包的文件> bundle.js(输出到哪去)
持续监听、打包文件
webpack <需要打包的文件> bundle.js(输出到哪去) --watch

webpack 对应 model.exports 和 require()搭配使用

自定义的文件引入时需要./文件位置 系统自带的不需要./

运用第三方库

使用第三方插件以使用jQuery为例

cnpm install jquery --save          ——先下载
let $ =require("jquery")           ——再调用

静态文件模块化 以css为例

npm install css-loader style-loader --save-dev  先下载

引入单个文件

单个文件——require('!style-loder!css-loder!./style.css')

引入整体文件

配置webpack入口文件webpack.config.js(必须起这个名字,否则找不到)

内容:
module.exports = {
    // 入口文件
    entry : './app.js',
    // 出后文件
    output : {
        path: __dirname + '/dist',
        filename : "bundle.js"
    },
    // 需要依赖的插件或者装载器
    module :{
        loaders : [
            {test : /\.css$/,loader : "style-loader!css-loader"}
//正则 所有的css都会通过装载器模块化
        ]
    }
}
之后的打包命令就可以直接使用webpack 会找到入口文件
搭建服务器

使用webpack-dev-server

npm install -g webpack-dev-server

如何使用package.json启动项目

在一个项目中 package.json文件控制了项目的构建方式
我们可以通过修改他来实现自主可控
"scripts": {
    "start": "webpack-dev-server --entry ./app.js --output-filename ./bundle.js",//让项目在服务器端运行 入口文件、出口文件 路径要正确 此后可以通过npm run start命令启动
    "build" : "webpack"//构建项目  npm run build
  },

项目中的es6语法不是所有浏览器都兼容,所以我们通过babel来将es6转化为es5

安装:
npm install babel-core babel-loader babel-preset-es2015
三个模块分别是 babel核心插件 装载器 需要预编译的语言
之后我们需要在webpack的入口文件webpack.config.js中编辑
module :{
        loaders : [
            {
                test : /\.js$/,//所有的js文件
                loader : "babel-loader", //使用装载器编译
                exclude : /node_modules/, //排除的文件
                query : {
                    pressets : ["es2015"] //查询预编译的文件
                }
            },
        ]
    }

事件传值

现在我们实现了父组件向子组件的传值,那么我们如果需要子组件向父组件传值应该怎么做呢,此时就需要我们借助Output的方法了
我们首先来创建一个组件
ng g c components/addQuestion
然后在add-question.component.html中添加一些内容
就像这样
<p class="card">
  <p class="card-hesder">
    添加问题
  </p>
  <p class="card-block">
    <form (submit) = "addQuestion()">
      <p class="form-group">
        <label for="text">问题</label>
        <input type="text" class="form-control" [(ngModel)] = "text" name="text">
      </p>
      <p class="form-group">
        <label for="text">答案</label>
        <input type="text" class="form-control" [(ngModel)] = "answer" name="answer">
      </p>
      <input type="submit" value="提交" class="btn btn-pramiry">
    </form>
  </p>
</p>

Tags:用W WE EB BP 
作者:网络 来源:Nick_YangX
请选择您看到这篇文章时的心情: 已有0人表态:
0
0
0
0
0
0
0
0
惊讶 欠揍 支持 很棒 愤怒 搞笑 恶心 不解