博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Webpack 配置中的一股清流
阅读量:4086 次
发布时间:2019-05-25

本文共 2543 字,大约阅读时间需要 8 分钟。

http://www.tuicool.com/articles/rYzuquJ网络上很多文章真的是很糟糕鸡肉鸭肉乱炖,包括早期webpack官方的文档,一套完整的配置教程要看个半天,配置起来更是麻烦!本文使用webpack1,其实跟版本2没多大改变,但是某些插件会导致报错,使用小心。

Git: 

喜欢的朋友star支持一下,不断更新

第一步:创建 package

npm init -yes

第二步:下载wbepack, babel (注意webpack版本1,babel编译ES6,7等等)

 文档,一个帮你配置Babel的preset

npm install --save-dev babel-loader babel-core  babel-preset-env webpack@1

第三步:创建webpack.config.js配置config

./webpack.config.js

module.exports = {  entry: {                       // 编译入口配置    app: './app/app.js'          // app/app.js 入口文件  },  output: {                      // 编译后输出配置    path: __dirname + '/dist',   //__dirname指当前目录,生成./dist文件    filename: '[name].build.js',    publicPath: '/'              // 资源路径,如:css的背景图片等路径  },};

然后在package.json中找到scripts添加

"start": "webpack --config webpack.config.js"

第四部:启动命令

$ npm start

好了,./dist/app.build.js 你可以看到了,编译成功。

第五步:使用babel编译js

# 对es6的支持$ npm install babel-preset-es2015 --save-dev# 如果你想用es7的功能$ npm install babel-preset-stage-0 --save-dev

添加module到config

...output:{..},module: {    loaders: [      {        test: /\.js$/,              //如果jsx 就jsx        exclude: /node_modules/,    //禁止编译node_modules文件        loader: 'babel-loader',     //babel-loder        query: {            presets: ['es2015', 'stage-0', 'env']  //babel-preset-env        }      }    ]  },...

好了,你的项目可以使用import, se6, es7等特性了。

第六步:创建html

创建html在你的 ./app/index.html

$ npm install html-webpack-plugin --save-dev

使用 

var HtmlWebpackPlugin = require('html-webpack-plugin');plugins: [    new HtmlWebpackPlugin({      template: __dirname + 'app/index.html', //指向你的index.html      title: 'Fuck!',  //页面中通过<%= htmlWebpackPlugin.options.title %>使用 具体请看官方具体文档    })],

好了上面你就会在dist/index.html 查看到了。

第七步:还需要一个服务器

$ npm install webpack-dev-server@1.16.3 --save-dev

注意如果使用webpack1的版本,dev-server不能是2的版本不然会报错。

添加devServer 到config里面,服务端口9000

devServer: {    contentBase: __dirname + 'dist',    compress: true,    port: 9000}
$ webpack-dev-server --hot --inline[HMR] Waiting for update signal from WDS...[WDS] Hot Module Replacement enabled.

你可以在在package.json 修改成这样

"build": "webpack --config webpack.config.js","start": "webpack-dev-server --hot --inline --config webpack.config.js NODE_ENV=development"

你就可以通过, 构建项目的命令了。

$ npm start$ npm build

命令添加 NODE_ENV=development 来给项目添加开发环境

到这就差不多可以跑通了,更多的细节大家还是去看git上面比较好的项目配置。一般找一些react的项目看看就可以了。

你更新文件就会自动刷新页面,但是是强刷。(难玩这东西)

如果你对dev-server有问题看看下面翻译的这篇文章吧

react hot解决了上面的问题,实现了hot

如果你没用react-hot 可以使用 

但是webpack2 还是需要

如果你的css中字体路径失效看这里(我使用url-loader也遇到过)

更多的xxx-loader,sass, img, font等大家自己去看文档吧,相对简单。

下面是个人觉得不错的webapck优化

转载地址:http://rjeni.baihongyu.com/

你可能感兴趣的文章
PX4官方用户和开发手册的首页面是会给你选择英文和中文的
查看>>
网络协议栈我是不是可以这么理解,就是把你要发送的数据自动处理成TCPIP格式的消息发出去,这种底层的转换不需要你弄了。
查看>>
除了LwIP还有uIP
查看>>
《跟工程师学嵌入式开发》这本书最后的终极项目我反而觉得有说头
查看>>
博士的申请考核制
查看>>
那些硬件的初始化函数主要是在做些上什么?
查看>>
MAVLink学习之路05_MAVLink应用编程接口分析(也有讲STM32下的收发函数)
查看>>
找到了中文版的mavlink手册
查看>>
浅谈飞控开发的仿真功能
查看>>
我觉得在室内弄无人机开发装个防撞机架还是很有必要的,TBUS就做得很好。
查看>>
serial也是见到很多次了,似乎它就是一种串行通信协议
查看>>
TBUS的一些信息
查看>>
PX4+激光雷达在gazebo中仿真实现(古月居)
查看>>
专业和业余的区别就在于你在基础在基本功打磨练习花的时间
查看>>
通过mavlink实现自主航线的过程笔记
查看>>
Ardupilot飞控Mavlink代码学习
查看>>
这些网站有一些嵌入式面试题合集
查看>>
我觉得刷题是有必要的,不然小心实际被问的时候懵逼,我觉得你需要刷个50份面试题。跟考研数学疯狂刷卷子一样!
查看>>
我觉得嵌入式面试三要素:基础吃透+项目+大量刷题,缺一不可。不刷题是不行的。而且得是大量刷,刷出感觉套路,别人做题都做得是固定题型套路条件反射了,你还在那慢慢理解慢慢推是不行的,也是考研的教训。
查看>>
相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像。
查看>>