首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【前端部署第六篇】使用 docker 部署单页应用,并通过对象存储服务将静态资源上传至 OSSCDN

    ,对 webpack config 做了进一步封装,阅读其源码,了解其 webpack.config.js 配置。...) const config = { output: { // webpack uses `publicPath` to determine where the app is being...publicPath: paths.publicUrlOrPath, }, } 可知「在 cra 中通过设置环境变量 PUBLIC_URL 即可配置 CDN 地址」。...将会在配置 PUBLIC_URL 中使用到 最终的 PUBLIC_URL 为 Bucket.Endpoint,比如本篇文章示例项目的 PUBLIC_URL 为 shanyue-cra.oss-cn-beijing.aliyuncs.com...在 build.args 中,默认从同名环境变量中取值。 PS: 在本地可通过环境变量传值,那在 CI 中呢,在生产环境中呢?待以后 CI 篇进行揭晓。

    2.4K30

    vue-cli

    我会尝试简化和通俗解释里面的关键知识或亮点, 但是不求甚解。为了避免陷入细节泥潭,我会尽量使用图形化方式展示他们程序流程,避免拘泥于细节。...以 Webpack 为例,恶心复杂的配置被人诟病,所以才需要 vue-cli 或者 create-react-app 这些工具....这种强约定也是有好处的,比如不需要管理配置; 而且 CRA 团队谨慎可靠地维护着 CRA,这使得开发者可以一般无痛地升级 CRA....例如比较,规范化 commander TJ 写的命令行选项和参数解析器,支持子命令,选项校验和类型转换,帮组信息生成等等. API 简单优雅 minimist: 一个极简的命令行参数解析器。...: 验证 npm 包名称,比如创建的项目名是否合法 dotenv & dotenv-expand: 从.env 文件中加载配置,环境变量 网络相关 portfinder: 获取可用的端口 address

    3.1K10

    创建 React 应用的 7 种方式,你用过几种?

    一:Create-React-App 首先,我们第一个是想到的是 react 官方团队提供的脚手架工具 Create React App(cra) npx create-react-app my-app...因此社区中提供了一些可配置的 cra 方案,craco、react-app-rewired craco 可配置的 cra 这里以 craco 为例,首先需要安装 @craco/craco yarn add...如果说对于上面的配置你不知所措,我想你有必要了解下,如何从零创建一个 webpack react 工程,这将帮你修改 webpack 工程更加得心应手。...二:从零创建 webapck react 工程 初始化项目 首先使用 npm init 创建一个前端项目 mkdir my-app cd my-app npm init -y 安装 webpack npm...webpack 使用相应模式的内置优化, 可以从 CLI 参数中传递。

    7.4K10

    更骚的create-react-app开发环境配置craco

    背景 使用 CRA 脚手架创建的项目,如果想要修改编译配置,通常可能会选择 npm run eject 弹出配置后魔改。...如果想要无 eject 重写 CRA 配置,目前成熟的是下面这几种方式 通过 CRA 官方支持的 --scripts-version 参数,创建项目时使用自己重写过的 react-scripts 包 使用...react-app-rewired + customize-cra 组合覆盖配置 使用 craco 覆盖配置 第二种方式相对第三种略复杂一些,我自己很有体会并且我们注意到最新的AntDesign4 官方也开始推荐...ES6的模块文件不做转化,以便使用tree shaking、sideEffects等 useBuiltIns: 'entry', // browserslist环境不支持的所有垫片都导入...babel-plugin-import ['import', { libraryName: 'antd', libraryDirectory: 'es', style: true }, 'antd'], // 配置解析器

    8.1K54

    我们如何使用 Next.js 将 React 加载时间缩短 70%

    Causal 的前端是在 2019 年用 Create React App(CRA)构建的,它为我们提供了很好的服务——它只需要最小的初始设置,并允许快速迭代。...从 CRA 迁移到 Next.js 在 2022 年中期,我们认为从 CRA 迁移到 Next.js 的好处是值得投入时间的。...我们对于拥有内置的页面路由原语感到特别兴奋,这样我们就不必手动配置路由和 Webpack 构建。...例如,我们的主页(my.causal.app)的加载速度提高了 71%(1.7 秒 → 0.5 秒),除了从加载状态到载入状态的必要过渡,没有任何布局上的跳跃。 性能上的好处不仅仅是用户体验。...Next.js 的开发体验明显比 CRA 快;开发人员从 30%(或更多!)更快的启动时间中受益,快速刷新体验是一种游戏规则的改变者,可以快速迭代小型 UI 调整。

    4.8K10

    一文详解如何在基于webpack5的react项目中使用svg

    本文主要讨论基于webpack5+TypeScript的React项目(cra、craco底层本质都是使用webpack,所以同理)在2023年的今天是如何在项目中使用svg资源的。...了解webpack的同学都知道,webpack可以通过loader,来处理一个资源在导入的时候会变成什么。...可能看起来还有点懵,我们尝试打包编译项目,看一下编译后的产物就知道了: 通过上图的结果可知,很明显svg在这种场景下依然被@svgr/webpack这个loader处理为了React组件,又因为咱们是在...可以看这篇文章: 资源模块 | webpack 中文文档 (docschina.org) 在上述配置中,我们都将匹配svg资源的引用,不同的是,如果这个引用路径带上url query,则使用webpack5...在index.module.less中,.app样式中,我们添加的背景也使用./icon-comment.svg,也添加了url query = “abc”。

    1K40

    使用人工智能优化一个数据库文件批量下载脚本

    下面是对代码的逐行解析: for i in {34..39}; do for i in {34..39}:这是一个for循环,i是循环变量,{34..39}是一个序列表达式,表示从34开始到39结束的整数序列...https://download.cncb.ac.cn/gsa2/CRA010501/CRR7274{i}/CRR7274{i}_f1.fq.gz:这是下载文件的URL。...需要注意的是,这个脚本中的URL是硬编码的,假设文件结构和URL模式是匹配的。如果URL模式与实际文件结构不匹配,脚本将无法正确下载文件。此外,脚本没有错误处理机制,例如处理下载失败的情况。...使用重试逻辑:为下载命令添加重试逻辑,例如使用axel -a -n 20 URL,其中-a选项会在下载失败时重试。 日志记录:使用日志记录每个下载尝试的结果,便于事后分析问题。..." fi sleep 1 # 增加延时 done 这个脚本在每次下载尝试失败后不会退出,而是继续尝试下载下一个文件,并且在每次下载尝试之间增加了一秒的延时。

    8910

    Vite前端项目搭建从0到1

    经过初步尝试,Vite 给人的第一感觉就是简洁、轻量、快速。...我曾经拿 react 官方基于 Webpack 的脚手架create-react-app,也就是大家常说的cra来测试过,Vite 已经比 cra 快了接近 6 倍,并且一开始就甩了 cra 一大截,显而易见地提升了初始化速度和开发体验...上述两个语句则分别代表了两个不同的请求,Vite Dev Server 会读取本地文件,返回浏览器可以解析的代码。...当浏览器解析到新的 import 语句,又会发出新的请求,以此类推,直到所有的资源都加载完成。...相比 Webpack 这种必须打包再加载的传统构建模式,Vite 在开发阶段省略了繁琐且耗时的打包过程,这也是它为什么快的一个重要原因。

    69880

    Vue处理静态资源及publicstaticassets目录的区别

    Vue 静态资源可以通过两种方式进行处理: 1、在 JavaScript 被导入或在 template/CSS 中通过相对路径被引用。这类引用会被 webpack 处理。...这类资源将会直接被拷贝,而不会经过 webpack 的处理。 从相对路径导入 当在 JavaScript、CSS 或 *.vue 文件中使用相对路径 (必须以 . ...和 CSS @import 的资源 URL 都会被解析为一个模块依赖。 例如,url(./image.png) 会被翻译为 require('./image.png'),而: URL 以 . 开头,它会作为一个相对模块请求被解释且基于你的文件系统中的目录结构进行解析。 3、如果 URL 以 ~ 开头,其后的任何内容都会作为一个模块请求被解析。...注意 Vue 推荐将资源作为模块依赖图的一部分导入,这样会通过 webpack 的处理并获得如下好处: 1、脚本和样式表会被压缩且打包在一起,从而避免额外的网络请求。

    1.5K20

    Vue处理静态资源及publicstaticassets目录的区别

    Vue 静态资源可以通过两种方式进行处理: 1、在 JavaScript 被导入或在 template/CSS 中通过相对路径被引用。这类引用会被 webpack 处理。...这类资源将会直接被拷贝,而不会经过 webpack 的处理。 从相对路径导入 当在 JavaScript、CSS 或 *.vue 文件中使用相对路径 (必须以 . ...和 CSS @import 的资源 URL 都会被解析为一个模块依赖。 例如,url(./image.png) 会被翻译为 require('./image.png'),而: URL 以 . 开头,它会作为一个相对模块请求被解释且基于你的文件系统中的目录结构进行解析。 3、如果 URL 以 ~ 开头,其后的任何内容都会作为一个模块请求被解析。...注意 Vue 推荐将资源作为模块依赖图的一部分导入,这样会通过 webpack 的处理并获得如下好处: 1、脚本和样式表会被压缩且打包在一起,从而避免额外的网络请求。

    28.5K92

    前端工程化之概念介绍

    React 否 是 React 官方维护 Vue CLI Vue 是 是 Vue官方维护 「CRA」: Facebook 官方提供的 React 开发工具集, 包含两个基础包 自定义配置能力 react-app-rewired...:利用config-overrides.js 文件来对 webpack 配置进行扩展 customize-cra:利用react-app-rewired的配置文件config-overrides.js对...webpack配置进行修改 create-react-app 用于选择脚手架「创建项目」 react-scripts 则作为所创建项目中的「运行时依赖包」,提供了封装后的项目「启动、编译、测试」等基础工具...Source Map Source Map 简介 ❝Source Map:「映射」转换后的代码与源代码之间的关系 ❞ 一段转换后的代码,通过转换过程中生成的 Source Map 文件就可以「逆向解析...Source Map 处理插件 根据不同规则,实际上 Webpack 是从三种「插件」中选择其一作为 source map 的处理插件。

    77110

    想搞一套AI问答游戏系统?简单,Google又开源了

    若朴 编译整理 量子位 出品 | 公众号 QbitAI 刚刚,Google开源了一套问答游戏App系统。 通过一套模板工具可以,你只要给出问题和答案,就能搞出一套功能齐备的AI问答游戏。...资源包 这个开源的问答游戏系统,包括了开发者所需的全部功能,而且可以自定义相关特性: API.AI,借助这个智能体(agent),开发者可以导入自己的账户,来处理游戏的自然语言理解 完整的游戏过程实现逻辑...一位胜利者”或者“一次勇敢的尝试,但没有什么用”。...现在可以导入TriviaGame.zip文件,这样就能获得游戏进程的所有intents。 开发者可以使用Firebase CLI工具部署实现逻辑,然后可以得到功能托管的URL地址。...把API.AI智能体实现URL指向Cloud Function for Firebase。使用API.AI中集成的Actions on Google在Web模拟器中进行测试。

    5.1K50

    React教程:组件,Hooks和性能

    首先使用 Create React App(CRA)初始化一个新项目,然后开始开发。不过遗憾的是,随着时间的推移,代码可能会变得难以维护,特别是在你不熟悉 React 的情况下。...就像 TypeScript 一样,CRA(创建React App)从一开始就支持 Flow。 我发现 TypeScript 更快(几乎是即时的),特别是在自动完成中,Flow 似乎有点慢。...请注意,Webpack 和 CRA 不是唯一的选项,因为你可以使用其他构建工具,如 Brunch。这通常包含在官方文档中,无论是官方的 React 文档还是特定工具的文档。...此外,更大的文件更适合用 gzipping,因此从拆分获得的好处有时可能不值得。这取决于文件大小,有时你需要自己去尝试。...最后,我们可以将所有这些包装在 ErrorBoundary 中(你可以在本文关于错误边界的那部分中找到代码) 如果某些内容因我们想要导入的组件而失败(例如出现网络错误),这将作为备用方案。

    2.6K30
    领券