Shopify CLI是开发Shopify应用和主题的重要工具,但在中国等网络受限地区使用时常遇到困难。
官方仓库有一些issue都提到了这些问题, 但是官方一直没有加对应的配置。
比如: [Bug]: Execute Shopify theme dev with error message: request to xxx.theme.json?xxx processing failed, reason: read ETIMEDOUT
本文将指导你如何正确配置Shopify CLI,以便在中国顺利进行Shopify开发。
主要问题
- Shopify CLI默认不支持配置代理
- 不读取系统环境变量
- 内置的Cloudflare tunneling在中国连接不稳定
本指南基于Shopify CLI 3.67.1版本。
配置代理
为全局安装的Shopify CLI配置代理需要修改其源代码。以下是详细步骤:
1. 定位Shopify CLI安装目录
根据安装方式,Shopify CLI的位置可能如下:
- 通过npm全局安装:
- Windows:
C:\Users\<username>\AppData\Roaming\npm\node_modules
- Linux/Mac:
/usr/local/lib/node_modules
- Windows:
- 使用NVM安装Node.js:
- 在NVM目录下查找,如:
F:\program\nvm\v20.12.0\node_modules\@shopify
- 在NVM目录下查找,如:
2. 修改运行脚本
- 进入
cli\bin
目录 - 备份
run.js
文件 - 全局安装
global-agent
:npm install -g global-agent
- 编辑
run.js
,在文件顶部添加以下代码:
1 | import { bootstrap } from 'global-agent'; |
修改后的完整run.js
文件内容:
1 |
|
3. 设置代理环境变量
在命令行中设置代理环境变量:
1 | set GLOBAL_AGENT_HTTP_PROXY=http://your_proxy_host:your_proxy_port |
PowerShell中使用:
1 | $env:GLOBAL_AGENT_HTTP_PROXY = "http://your_proxy_host:your_proxy_port" |
替代Tunneling方案
Shopify CLI默认使用Cloudflare进行tunneling,但在中国可能连接不稳定。推荐使用ngrok作为替代方案:
- 安装ngrok
- 按照Shopify官方文档配置ngrok
使用ngrok可以显著提高tunneling的稳定性,为中国开发者提供更流畅的Shopify开发体验。
结语
通过以上配置,你应该能够在中国顺利使用Shopify CLI进行开发。如果遇到任何问题,欢迎在评论区讨论或查阅Shopify官方文档获取更多信息。