在Bubbly项目中给项目改名,听起来简单,但如果不一次性同步更新所有关联的地方,轻则构建失败,重则运行时连主类都找不到。这个操作涉及工程文件名、配置文件里的标识符、源码中的硬编码引用,以及构建产物的显示名,任何一处遗漏都可能引发问题。 下面直接梳理标准流程,避免你踩坑。 首先,必须关闭Bubbly IDE或VS Code等编辑器,然后在文件管理器中找到项目文件夹,右键重命名为新的名称,比如从`hello-world`改成`my-bubbly-app`,按回车确认。这一步是后续所有操作的基础,路径不统一的话,后面再怎么改都会因为找不到路径而失效。 **【关键】务必将同名的 `.bubblyproj` 文件也一并重命名**。项目根目录下有一个与文件夹同名、扩展名为`.bubblyproj`的工程配置文件,比如原来叫`hello-world.bubblyproj`,现在必须一并改为`my-bubbly-app.bubblyproj`。否则Bubbly加载时会直接报错“Project file not found”。 --- ### 修改项目配置文件中的名称字段 用文本编辑器打开 `.bubblyproj` 文件,找到 `` 标签,将里面的旧名称(比如 `HelloWorld`)替换为新名称(比如 `MyBubblyApp`),保存。接着继续查找 `` 和 `` 两个标签,确保它们的值也与新项目名完全一致。如果还存在 ``,同样更新为匹配的新命名空间,比如 `MyBubblyApp`。 这里需要注意:这三个字段缺一不可,漏掉任何一个都会导致最终生成的文件名或程序集名称不对。 --- ### 更新源码中硬编码的项目引用 打开 `src/Program.bbl`(或项目的主入口文件),检查里面是否包含类似 `project "HelloWorld"` 或 `appname: "HelloWorld"` 的声明,全部替换为新名称。 然后在整个项目内搜索旧名称(按Ctrl+Shift+F,关键词带英文引号,比如 `"HelloWorld"`),排除 `node_modules` 和 `dist` 目录。重点检查 `package.json` 里的 `"name"` 字段、`build.config.js` 中的 `output.dir` 和 `appInfo.title`,每一处都要替换成新项目名。 如果项目启用了模块化路由或资源加载,别漏了 `public/manifest.json` 和 `public/index.html` 中的 `name`、`short_name`、``,否则浏览器标签页仍然显示旧名称,白改了一通。 --- ### 清理缓存并验证构建 改完所有地方后,按以下顺序验证: 1. 在终端进入项目根目录,执行 `bubbly clean`。 2. 然后执行 `bubbly build`。 3. 如果构建时报错 `Error: Cannot find module './dist/HelloWorld.js'`,说明某处路径没更新——立即检查 `build.config.js` 中 `entry` 字段和 `output.filename` 是否还残留旧名。 4. 构建成功后,运行 `bubbly serve`,访问 `http://localhost:8080`,确认页面标题、控制台输出、打包后的JS文件名都已经是新名称。 整个过程并不复杂,但每一步都环环相扣。只要按这个清单走一遍,项目改名就不会翻车。 </div> <div class="laiyuan"> 本文转载于:https://www.php.cn/faq/2646744.html?uid=1221864 如有侵犯,请联系zhengruancom@outlook.com删除。<br/>免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。 </div> <div class="legal_box2"> <div class="legal_title"> <h2>同类商品 <em></em></h2> <div class="clear"></div> </div> <ul class="shapo_list"> <li> <a href="https://m.zhengruan.com/news/soft69"> <div class="img_box"> <img src="https://m.zhengruan.com/uploads/20200428/cd14258f0172a172f8a80798c38c1577.jpg" alt="DAEMON Tools Lite 10"> </div> <h2> DAEMON Tools Lite 10 </h2> <p> <em>¥</em>0.00 <del>¥0.00 </del> </p> </a> </li> <li> <a href="https://m.zhengruan.com/news/soft67"> <div class="img_box"> <img src="https://m.zhengruan.com/uploads/20200428/fbf473d4d30833324962e441c0f18265.jpg" alt="DAEMON Tools Ultra 5"> </div> <h2> DAEMON Tools Ultra 5 </h2> <p> <em>¥</em>0.00 <del>¥0.00 </del> </p> </a> </li> <li> <a href="https://m.zhengruan.com/news/soft68"> <div class="img_box"> <img src="https://m.zhengruan.com/uploads/20200428/1ae250399abf4ff584d86d52c79b5bb6.jpg" alt="DAEMON Tools Pro 8"> </div> <h2> DAEMON Tools Pro 8 </h2> <p> <em>¥</em>0.00 <del>¥0.00 </del> </p> </a> </li> <li> <a href="https://m.zhengruan.com/news/soft29"> <div class="img_box"> <img src="https://m.zhengruan.com/uploads/20200428/77d3c04866e1b842d9b6ff0e9368bdf8.jpg" alt="CorelDRAW X8 简体中文"> </div> <h2> CorelDRAW X8 简体中文 </h2> <p> <em>¥</em>0.00 <del>¥0.00 </del> </p> </a> </li> <div class="clear"></div> </ul> </div> <div class="legal_box2"> <div class="legal_title"> <h2>相关文章 <em></em></h2> <a href="https://m.zhengruan.com/newslist/322_1"> 更多 <em class="icon"></em></a> <div class="clear"></div> </div> <ul class="gal_article_list"> <li> <a href="https://m.zhengruan.com/news/768037"> <em class="icon"></em> <p> 三星 Galaxy A08 渲染图曝光:Helio G99 芯片与 6000mAh 电池配置解析 </p> </a> </li> <li> <a href="https://m.zhengruan.com/news/768036"> <em class="icon"></em> <p> HMD Asha 305发布:参数配置与系统功能解析 </p> </a> </li> <li> <a href="https://m.zhengruan.com/news/768035"> <em class="icon"></em> <p> 高通骁龙8至尊版Gen6实物图曝光:侧置DRAM与HPB散热结构解析 </p> </a> </li> <li> <a href="https://m.zhengruan.com/news/768034"> <em class="icon"></em> <p> Nothing 海外重启社区共创计划:提前体验与评测规则详解 </p> </a> </li> <li> <a href="https://m.zhengruan.com/news/768033"> <em class="icon"></em> <p> TECNO Camon Slim 5G发布:6.39mm机身与6000mAh电池规格解析 </p> </a> </li> </ul> </div> </main> <footer> <div class="main_foot"> <a href="https://m.zhengruan.com" class="foot_logo"><img src="https://m.zhengruan.com/statics/mob/zrimages/logo_b.png" alt="正软"></a> <p>联系方式: bd@zhengruan.com<br>网站备案号:苏ICP备2026018738号-1</p> <ul> <li class="one"><a href="https://m.zhengruan.com" class="cBlack"><b class="i_index"></b>首页</a></li> <li><a href="http://www.zhengruan.com" class="cBlack"><b class="i_pc"></b>电脑端</a></li> <li><span class="return_top"><b class="i_top"></b>顶部</span></li> </ul> </div> </footer> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?3835539565b311d85319cd21da8fd0d9"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!-- Matomo --> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function () { var u = "https://tongji.php.cn/"; _paq.push(['setTrackerUrl', u + 'matomo.php']); _paq.push(['setSiteId', '36']); var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s); })(); </script> <!-- End Matomo Code --> </body> <script> function countView(){ $.ajax({ type: "post", url: "/countView?&time="+new Date().getTime(), data:{'type':'news','id':"680314"}, async:false, dataType: "json", success: function(result){ console.log(result) }, error:function(){ } }); } $(function(){ countView(); }) </script> </html>