打包上线、图片模块化

打包上线

npm run serve

  1. 启动一个web服务器
  2. 自动打包(开发环境的包,在内存中运行,不会生成实际文件)
  3. 启动后自动打开浏览器添加 --open 命令

npm run build

  1. 构建一个生成环境的包(上线的代码)
  2. js css文件名添加哈希值的作用:解决缓存问题
  3. vue.config.js中的配置项:
  • publicPath 配置公共资源的路径
  • js css引入路径问题,默认打包出来的是 ‘/’ 根目录(需要部署在服务器根目录)
  • js css引入使用使用相对路径 ‘./’ (部署在服务器某个子目录下)
  1. <img src="/b1.jpg" alt="">
    这种图片引入方式在打包时,webpack不做任何处理,直接拷贝到项目根目录
  2. <img src="../../assets/img/loading4.gif" alt="">
    这种图片引入方式在打包时,webpack会做一些处理(添加哈希值,放到项目中的某个文件夹中)
  3. <img src="https://yanxuan.nosdn.127.net/9d8114ce4ef435ceac5e82120efeec4c.png" alt="">
    这种图片引入方式在打包时,webpack不做任何处理,代码的一部分
  4. 通过背景图引入图片,和引入public和assets中的图片一样,不推荐
  5. 通过模块化管理图片,推荐
// img.js
import ld4 from './img/loading4.gif'
import ld5 from './img/loading5.gif'
import ld6 from './img/loading6.gif'
// 开发环境的基础路径
let baseUrl = '/'
// 生产环境的基础路径
// let baseUrl = './'
// 使用了七牛加速服务的基础路径
// let baseUrl = 'https://www.qiniu.com/qf/webapp/'

export default {
  b1: baseUrl + 'b1.jpg',
  b2: baseUrl + 'b2.jpg',
  ld4,
  ld5,
  ld6,
  wyyx1: 'https://yanxuan.nosdn.127.net/e21381b7e1e7caebbe72488db9542163.gif',
  wyyx2: 'https://yanxuan.nosdn.127.net/9d8114ce4ef435ceac5e82120efeec4c.png'
}
  1. 选择history路由模式的配置
const router = new VueRouter({
  routes,
  // mode: 'hash',//默认模式
  mode: 'history',
  base: '/dist/'
})
  1. history路由模式的nginx配置
    location /dist {
    try_files $uri $uri/ /dist/index.html;
    }
    所有访问地址中有/dist的访问,统一放回服务器根目录下的dist目录中的index.html

  2. 配置数据请求代理

### Taro 和 React 应用打包上线部署教程 #### 一、Taro 应用的打包与部署最佳实践 对于Taro应用而言,在完成开发阶段后,进入生产环境前需要经历一系列准备过程来确保最终产品的稳定性和高效性[^1]。 - **构建命令** 为了使应用程序能够适应不同的运行环境(如微信小程序、H5页面),开发者可以利用`npm run build:weapp` 或者 `npm run build:h5`这样的特定指令来进行针对性编译。这一步骤会依据所选平台的特点调整资源文件结构以及优化代码逻辑以便更好地兼容目标设备特性。 ```bash npm run build:[platform] ``` 其中 `[platform]` 可以为 weapp(微信小程序), h5, rn (React Native),具体取决于实际应用场景需求。 - **配置优化** 考虑到包大小对用户体验的影响,在发布版本中移除不必要的调试信息是非常重要的。可以通过修改`taro.config.js`中的相关选项实现这一点: ```javascript module.exports = { ..., mini:{ postcss:{}, ... }, h5:{ publicPath:'/', output:{ filename:'js/[name].[hash].js', chunkFilename:'js/[id].[chunkhash].js' } } } ``` 这里展示了针对 H5 平台的一些典型设置;而对于其他平台,则应参照官方文档进行相应调整以达到最优效果。 - **去除console.log等打印语句** 在正式环境中保留过多的日志输出不仅浪费计算资源还可能暴露敏感数据给外部访问者。因此建议在打包过程中自动清除这些冗余记录。可以在 Webpack配置里加入插件来达成目的: ```javascript const { DefinePlugin } = require('webpack'); ... plugins:[ new DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production') }), ], optimization: { minimize: true, minimizer: [ new TerserWebpackPlugin({ terserOptions: { compress: { drop_console: true // 移除所有的 console.* 方法调用 } } }) ] } ``` 这段脚本片段说明了如何通过定义 NODE_ENV 环境变量为 production 来触发更激进的压缩策略,并且特别指定了要删除所有控制台日志操作[^3]。 #### 二、React 应用的打包与部署流程概述 当涉及到基于 React 构建的应用程序时,同样存在一套完整的方案用于将其转换成可执行的产品形式并顺利推向市场[^4]。 - **创建生产构建** 借助 Create React App 提供的一键式工具链,只需简单地输入一条命令即可获得经过全面优化后的静态资产集合: ```bash npm run build ``` 此命令会在项目的根目录下生成名为 "build" 的新文件夹,里面包含了已经过混淆处理、压缩过的 HTML/CSS/JS 文件以及其他必要的媒体素材,可以直接上传至任何支持托管静态网页的服务提供商处。 - **解决背景图像加载失败问题** 有时可能会遇到样式表内指定的路径未能正确解析而导致视觉元素缺失的情况。为了避免这种情况发生,应该确认 CSS 中引用的相对地址指向的是相对于当前HTML文档的位置而非源码仓库内的位置。另外一种常见做法是在导入图片资源时使用 import 语法让Webpack负责管理依赖关系从而保证打包后的链接有效性: ```scss // 不推荐的方式 .background-image{ background:url('./path/to/image.png') no-repeat center; } // 推荐方式 import backgroundImage from './assets/background.jpg'; .body{ background:`url(${backgroundImage})`; } ``` 上述 SCSS 示例强调了采用 ES6 模块化机制引入图形资料的重要性,这样不仅可以简化维护工作还能有效防止因路径错误引起的渲染异常现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值