当前位置: 首页 > news >正文

牛商网营销型网站建设商标设计网免费

牛商网营销型网站建设,商标设计网免费,做汽车精品的网站,山东济南seo整站优化目录 1_开启本地服务器1.1_开启本地服务器原因1.2_webpack-dev-server 2_HMR热模块替换2.1_认识2.2_开启HMR2.3_框架的HMR 3_devServer配置3.1_host配置3.2_port、open、compress 4_开发与生成环境4.1_如何区分开发环境4.2_入口文件解析4.3_区分开发和生成环境配置 1_开启本地服… 目录 1_开启本地服务器1.1_开启本地服务器原因1.2_webpack-dev-server 2_HMR热模块替换2.1_认识2.2_开启HMR2.3_框架的HMR 3_devServer配置3.1_host配置3.2_port、open、compress 4_开发与生成环境4.1_如何区分开发环境4.2_入口文件解析4.3_区分开发和生成环境配置 1_开启本地服务器 1.1_开启本地服务器原因 目前开发的代码为了运行需要有两个操作 操作一npm run build编译相关的代码操作二通过live server或者直接通过浏览器打开index.html代码查看效果 这个过程经常操作会影响的开发效率希望可以做到当文件发生变化时可以自动的完成 编译 和 展示 为了完成自动编译webpack提供了几种可选的方式 webpack watch modewebpack-dev-server常用webpack-dev-middleware 1.2_webpack-dev-server 上面的方式可以监听到文件的变化但是事实上它本身是没有自动刷新浏览器的功能的 当然目前可以在VSCode中使用live-server来完成这样的功能但是希望在不适用live-server的情况下可以具备live reloading实时重新加载的功能 安装webpack-dev-server npm install webpack-dev-server -D 修改配置文件启动时加上serve参数 packjson.js文件中 scripts: {build: webpack --config webpack.config.js,serve: webpack serve --config webpack.config.js},webpack.config.js文件中 module.exports {devServer: {} }webpack-dev-server 在编译之后不会写入到任何输出文件而是将 bundle 文件保留在内存中。 事实上webpack-dev-server使用了一个库叫memfsmemory-fs webpack自己写的 2_HMR热模块替换 2.1_认识 什么是HMR HMR的全称是Hot Module Replacement翻译为模块热替换模块热替换是指在 应用程序运行过程中替换、添加、删除模块而无需重新刷新整个页面 HMR通过如下几种方式来提高开发的速度 不重新加载整个页面这样可以保留某些应用程序的状态不丢失只更新需要变化的内容节省开发的时间修改了css、js源代码会立即在浏览器更新相当于直接在浏览器的devtools中直接修改样式 如何使用HMR呢 默认情况下webpack-dev-server已经支持HMR只需要开启即可默认已经开启在不开启HMR的情况下当修改了源代码之后整个页面会自动刷新使用的是live reloading 2.2_开启HMR 修改webpack.config.js配置 module.exports {devServer: {hot: true,} } 浏览器的控制台会出现下面的提示 [HMR] waiting for update signal from wDs.. . [WDS] Hot Module Replacement enabled.但是当修改了某一个模块的代码时依然是刷新的整个页面 这是因为需要去指定哪些模块发生更新时进行HMR // 指定哪一个模块需要HMR if (module.hot) {module.hot.accept(./utils/demo.js, () {console.log(demo模块发生了更新)}) }2.3_框架的HMR 有一个问题在开发其他项目时是否需要经常手动去写入 module.hot.accpet相关的API呢比如开发Vue、React项目修改了组件希望进行热更新这个时候应该如何去操作呢 事实上社区已经针对这些有很成熟的解决方案了 比如vue开发中使用vue-loader此loader支持vue组件的HMR提供开箱即用的体验比如react开发中有React Hot Loader实时调整react组件目前React官方已经弃用了改成使用react-refresh 3_devServer配置 3.1_host配置 host设置主机地址 默认值是localhost如果希望其他地方也可以访问可以设置为 0.0.0.0 localhost 和 0.0.0.0 的区别 localhost本质上是一个域名通常情况下会被解析成127.0.0.1;127.0.0.1回环地址(Loop Back Address)表达的意思其实是主机自己发出去的包直接被自己接收; 正常的数据库包经常 应用层 - 传输层 - 网络层 - 数据链路层 - 物理层 ;而回环地址是在网络层直接就被获取到了是不会经常数据链路层和物理层的;比如监听 127.0.0.1时在同一个网段下的主机中通过ip地址是不能访问的; 0.0.0.0监听IPV4上所有的地址再根据端口找到不同的应用程序。比如监听 0.0.0.0时在同一个网段下的主机中通过ip地址是可以访问的 3.2_port、open、compress port设置监听的端口默认情况下是8080 open是否打开浏览器 默认值是false设置为true会打开浏览器也可以设置为类似于 Google Chrome等值 compress是否为静态文件开启gzip compression。 默认值是false可以设置为true 4_开发与生成环境 4.1_如何区分开发环境 目前所有的webpack配置信息都是放到一个配置文件中的webpack.config.js 当配置越来越多时这个文件会变得越来越不容易维护并且某些配置是在开发环境需要使用的某些配置是在生成环境需要使用的当然某些配置是在开发和生成环境都会使用的所以最好对配置进行划分方便维护和管理 那么在启动时如何可以区分不同的配置呢 方案一编写两个不同的配置文件开发和生成时分别加载不同的配置文件即可方式二使用相同的一个入口配置文件通过设置参数来区分它们 packjson.js的关键代码如下 scripts: {build: webpack --config ./config/webpack.prod.config.js,serve: webpack serve --config ./config/webpack.dev.config.js}4.2_入口文件解析 之前编写入口文件的规则是这样的 ./src/index.js但是如果的配置文件所在的位置变成了 config 目录是否应该变成 …/src/index.js呢 如果这样编写会发现是报错的依然要写成 ./src/index.js这是因为入口文件其实是和另一个属性时有关的 context context的作用是用于解析入口entry point和加载器loader 官方说法默认是当前路径但是经过测试默认应该是webpack的启动目录另外推荐在配置中传入一个值 const path require(path) module.exports {context: path.resolve(__dirname,./) //context是配置文件所在目录entry: ../src/index.js, //或者main./src/main.js }const path require(path) module.exports {context: path.resolve(__dirname,../) //context是上一个目录entry: ./src/index.js, //或者main./src/main.js }4.3_区分开发和生成环境配置 创建三个文件 webpack.comm.conf.jswebpack.dev.conf.jswebpack.prod.conf.js 在终端输入命令 npm install webpack-merge -D webpack.dev.config.js const { merge } require(webpack-merge) const commonConfig require(./webpack.comm.config)module.exports merge(commonConfig, {mode: development,devServer: {hot: true,// host: 0.0.0.0,// port: 8888,// open: true// compress: true} })webpack.prod.config.js const { CleanWebpackPlugin } require(clean-webpack-plugin) const { merge } require(webpack-merge) const commonConfig require(./webpack.comm.config)module.exports merge(commonConfig, {mode: production,output: {clean: true},plugins: [new CleanWebpackPlugin()] })webpack.comm.config.js const path require(path) const { VueLoaderPlugin } require(vue-loader/dist/index) const HtmlWebpackPlugin require(html-webpack-plugin) const { DefinePlugin } require(webpack)module.exports {entry: ./src/main.js,output: {filename: bundle.js,path: path.resolve(__dirname, ../build)},resolve: {extensions: [.js, .json, .vue, .jsx, .ts, .tsx],alias: {utils: path.resolve(__dirname, ../src/utils)}},module: {rules: [{test: /\.css$/,use: [ style-loader, css-loader, postcss-loader ]},{test: /\.less$/,use: [ style-loader, css-loader, less-loader, postcss-loader ]},{test: /\.(png|jpe?g|svg|gif)$/,type: asset,parser: {dataUrlCondition: {maxSize: 60 * 1024}},generator: {filename: img/[name]_[hash:8][ext]}},{test: /\.js$/,use: [{ loader: babel-loader}]},{test: /\.vue$/,loader: vue-loader}]},plugins: [new VueLoaderPlugin(),new HtmlWebpackPlugin({title: 测试项目,template: ./index.html}),new DefinePlugin({BASE_URL: ./,coderwhy: why,counter: 123})] }
http://wiki.neutronadmin.com/news/352650/

相关文章:

  • 温州建站方案电商网站开发思路模版
  • 网站建设 前后台目录结构马上飞做的一些网站
  • 不备案怎么做淘宝客网站做网站推广的方法有哪些
  • app网站设计制作营销网站型建设多少钱
  • 金坛网站建设报价网上营销的方式
  • 眼睛网站开发什么是精准营销
  • 就业网站建设总结phpcms 图片网站
  • 专门做餐饮运营的网站做网站维护学什么编程语言
  • 私人网站建设方案书框架栏目建设银行江苏分行网站
  • 网站备案抽查通过通过php安装wordpress
  • wordpress建好后安全网站seo置顶
  • 大地保险网站深圳龙岗好玩的地方
  • 中国住房和城乡建设部查询网站6国外域名拍卖网站
  • 手机网站引导页今天最新新闻摘抄
  • 大连建设工业产品网站企业建设网站哪家好
  • 做网站代理网站怎么谈微信微商城开发
  • 上海网站建设的wordpress 附件重命名
  • 佛山做外贸网站特色涪城移动网站建设
  • 网站建站网站80s隐秘而伟大网页制作源代码免费的
  • 红色ppt模板免费下载网站wordpress视频文件大小设置
  • 自动写作网站网页效果图设计流程
  • 建影楼网站多少钱番禺建设银行网站
  • 遵义市双控体系建设网站在线商城开发费用
  • 黑龙江省网站备案最轻快的wordpress主题
  • 济南制作网站公司哪家好购物网站建设优缺点
  • 西安网站快速备案企业网络设计方案论文
  • 海口网站建设流程网站开发流程详解
  • 有成功案例的网站互联网经营许可证
  • 网站建设费计入 科目怎样做电商网站的财务分析
  • 定制网站开发app费用快速建网站模板