{"id":22903517,"url":"https://github.com/sawyerbutton/fproject","last_synced_at":"2025-10-10T23:39:22.323Z","repository":{"id":120749258,"uuid":"122537293","full_name":"sawyerbutton/FProject","owner":"sawyerbutton","description":null,"archived":false,"fork":false,"pushed_at":"2018-02-23T02:47:57.000Z","size":619,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-28T00:39:53.506Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sawyerbutton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-22T21:26:44.000Z","updated_at":"2018-02-22T21:28:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"b1989b22-dd89-4bad-8c12-86e0292265d4","html_url":"https://github.com/sawyerbutton/FProject","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sawyerbutton/FProject","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sawyerbutton%2FFProject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sawyerbutton%2FFProject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sawyerbutton%2FFProject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sawyerbutton%2FFProject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sawyerbutton","download_url":"https://codeload.github.com/sawyerbutton/FProject/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sawyerbutton%2FFProject/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005577,"owners_count":26083920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-14T02:37:34.143Z","updated_at":"2025-10-10T23:39:22.307Z","avatar_url":"https://github.com/sawyerbutton.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n\u003cimg src=\"src/assets/imgs/nicefish-jigsaw.png\" width=\"240\" alt=\"nicefish-jigsaw\"/\u003e\r\n\r\n# NiceFish（美人鱼）\r\n\r\nNiceFish是一个系列教学项目，都是Angular这个技术栈。\r\n\r\n- NiceFish：美人鱼，这是一个微型Blog系统，前端基于Angular 4.x + PrimeNG。http://git.oschina.net/mumu-osc/NiceFish/\r\n\r\n- NiceFish-Admin：这是系统管理界面，基于Angular 4.x+PrimeNG，http://git.oschina.net/mumu-osc/NiceFish-Admin\r\n\r\n- NiceFish-ionic：这是一个移动端的demo，基于ionic。http://git.oschina.net/mumu-osc/nicefish-ionic\r\n\r\n- NiceFish-SpringMybatis：这是Java版后台服务，http://git.oschina.net/mumu-osc/NiceFish-SpringMybatis \r\n\r\n- NiceBlogElectron：https://github.com/damoqiongqiu/NiceBlogElectron ,这是一个基于Electron的桌面端项目，把NiceFish用Electron打包成了一个桌面端运行的程序。这是由ZTE中兴通讯的前端道友提供的，我fork了一个，有几个node模块的版本号老要改，如果您正在研究如何利用Electron开发桌面端应用，请参考这个项目。\r\n\r\n- OpenWMS：https://gitee.com/mumu-osc/OpenWMS-Frontend ，这是OpenWMS项目的前端代码，基于当前最新的Angular 5.2.0和PrimeNG 4.1.0。\r\n\r\n## 在线演示\r\n\r\nNiceFish:    http://47.104.13.149:4200\r\n\r\nNiceFish-Admin:   http://47.104.13.149:8080\r\n\r\nOpenWMS：http://47.104.80.251:4200\r\n\r\n（比较穷，买了一个阿里云小主机，您担待。）\r\n\r\n## 用法\r\n\r\n用git克隆本项目，从命令行进入进入项目根目录，依次执行以下命令：\r\n\r\n\tnpm i -g cnpm --registry=https://registry.npm.taobao.org\r\n\tcnpm i -g @angular/cli\r\n\tcnpm install\r\n\tng serve\r\n\r\n- 如果之前装过@angular/cli需要先卸载：npm uninstall -g @angular/cli\r\n- 如果之前装过angular-cli需要先卸载：npm uninstall -g angular-cli\r\n- 如果你之前已经尝试安装过node模块，请把NiceFish根目录下的node_moduels目录删掉\r\n\r\n然后依次执行以下命令：\r\n\r\n\tnpm cache clean\r\n\tnpm prune\r\n\tnpm i -g cnpm --registry=https://registry.npm.taobao.org\r\n\tcnpm i -g @angular/cli\r\n\tcnpm install\r\n\tng serve\r\n\r\n打开你的浏览器，访问http://localhost:4200/\r\n\r\n如果你想让加载的包更小，请使用以下方式启动@angular/cli内置的轻量级http server\r\n\r\n\tng serve --prod\r\n\r\n如果你需要把项目发布到其它类型的Server上，例如Tomcat，需要对Server进行一些简单的配置才能支持HTML5下的PushState路由模式，请从以下链接里面查找对应的配置方式：https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions ，在\r\nHow to: Configure your server to work with html5Mode这个小节里面把常见的WEB容器的配置方式都列举出来了，包括：IIS、Apache、nginx、NodeJS、Tomcat全部都有，你过去抄过来就行。\r\n\r\n【注意】如果你发现ng serve起不来，或者起来有报错，请把NiceFish根目录下的node_modules目录删掉，然后重新执行cnpm install，全局的@angular/cli也需要删掉重装。\r\n\r\n## 如何更新NiceFish的代码\r\n\r\n打开命令行，进入NiceFish根目录，依次执行以下命令：\r\n\r\n\tgit pull\r\n\tcnpm update\r\n\tng serve\r\n\r\n噢对，如果你pull代码之后发现起不来了，请把你项目下的node_modules全部删掉，然后重新cnpm update。这里确实有点坑，但是我也不知道为什么，目测是npm包的版本问题。\r\n\r\n## TreeShaking\r\n\r\n开发状态打出来的bundle体积比较大，在发布到生产环境之前需要进行TreeShaking，用法如下：\r\n\r\n打开命令行，进入NiceFish根目录，执行以下命令：\r\n\t\r\n\tng build --prod\r\n\r\n加上prod参数之后，@angular/cli会利用envionments/envionments.prod.js里面的配置项来构建项目，同时会自动启用TreeShaking（摇树）特性，简而言之，就是把用不到的包全部剔除掉，就像从树上把枯叶子摇下来一样，很形象吧？\r\n\r\n@angular/cli会在项目根目录下生成一个dist目录，里面就是编译、压缩好的文件了。仔细观察你会发现，这些文件的体积已经被大幅度压缩，加上gzip之后有一些文件只剩下1/4左右的大小。\r\n\r\n## 在线交流QQ群\r\n\r\n\u003ca target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=8db5ed802cbddbf6432d7ba7dc4f2a316be020442491eb41cbfb1a12434e8cc7\" class=\"list-group-item\"\u003e\u003ci class=\"fa fa-qq\" aria-hidden=\"true\"\u003e\u003c/i\u003e Angular-1区-丝绸之路（满）\u003c/a\u003e\r\n\r\n\u003ca target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=cbfcd79e7e90939b0e2c519f475fac4792985ce2abc5ad45ec5e06ffcfe944dd\" class=\"list-group-item\"\u003e\u003ci class=\"fa fa-qq\" aria-hidden=\"true\"\u003e\u003c/i\u003e Angular-2区-敦煌（满）\u003c/a\u003e\r\n\r\n\u003ca target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=639229c8b6ad0c3a9a8f381dddf5d7785780b20d8c37eb25c91ac73ea7d37a5f\" class=\"list-group-item\"\u003e\u003ci class=\"fa fa-qq\" aria-hidden=\"true\"\u003e\u003c/i\u003e Angular-3区-玉门关（满）\u003c/a\u003e\r\n\r\n\u003ca target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=12add102af3f67910bdc0de753dee10ebada08ab485af7e38f4dfa0ee27476f7\" class=\"list-group-item\"\u003e\u003ci class=\"fa fa-qq\" aria-hidden=\"true\"\u003e\u003c/i\u003e Angular-4区-河西走廊（满）\u003c/a\u003e\r\n\r\n\u003ca target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=1293a6494fb306ea29d281e320a8f4ef82285fa5300f73118e6ff7a79ce76036\"\r\nclass=\"list-group-item\"\u003e\u003ci class=\"fa fa-qq\" aria-hidden=\"true\"\u003e\u003c/i\u003e\r\nAngular-5区-楼兰（将满）\r\n\u003c/a\u003e\r\n\r\n\u003ca target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=fcd880ba919983dc85690642d48cf00ad0affd8d35de5f30542c895e622a8ab8\"\r\nclass=\"list-group-item\"\u003e\u003ci class=\"fa fa-qq\" aria-hidden=\"true\"\u003e\u003c/i\u003e\r\nAngular-6区-凉州（将满）\r\n\u003c/a\u003e\r\n\r\n\u003ca target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=5d6b8c5296e4806142b8422ae7abca6f27b9b9b992a4dac80dc1392644e8970a\"\u003e\u003ci class=\"fa fa-qq\" aria-hidden=\"true\"\u003e\u003c/i\u003e脚本娃娃-桃花岛（将满）\u003c/a\u003e\r\n\r\n如果您有Angular相关的问题需要讨论，或者单纯想跟我Say Hello，请加上面几个扣扣群。注意，我每天都会收到大量的求助消息，真的有点忙，所以请您优先在扣扣群里面讨论问题。\r\n\r\n## 学习资源和视频教程\r\n\r\n大漠演讲中的所有PPT已经本项目对应的资料都在这里，您可以随意使用，https://gitee.com/mumu-osc/NiceFish/attach_files 。\r\n\r\n如果您需要教程，请自己来这里查看，http://www.ngfans.net/ ，有视频也有文字，有免费版本也有收费版，您自己看着选。\r\n\r\n## 开源许可证\r\n MIT\r\n\r\n 你可以随意使用此项目，无需通知我，因为我可能很忙没空搭理你。\r\nfocus test\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsawyerbutton%2Ffproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsawyerbutton%2Ffproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsawyerbutton%2Ffproject/lists"}