{"id":38935,"date":"2023-04-04T13:34:14","date_gmt":"2023-08-14T11:42:22","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/"},"modified":"2024-01-15T10:05:02","modified_gmt":"2024-01-15T02:05:02","slug":"%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/","title":{"rendered":"\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5"},"content":{"rendered":"<h2>\u51c6\u5907\u4f5c\u4e1a<\/h2>\n<p>\u5b98\u65b9\u652f\u6301\u8de8\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684\u5347\u7ea7\uff0c\u5982\u4ee5\u4e0bURL\u6240\u8ff0\u3002<\/p>\n<p>Angular\u66f4\u65b0\u6307\u5357<\/p>\n<p>\u6211\u4eec\u7acb\u5373\u6839\u636e\u66f4\u65b0\u6307\u5357\u5f00\u59cb\u8fdb\u884c\u7248\u672c\u5347\u7ea7\u5427\u3002<\/p>\n<p>\u8fd9\u6b21\u6211\u4eec\u5c06\u8fdb\u884c\u4ece\u7248\u672c7\u5347\u7ea7\u5230\u7248\u672c12\u7684\u66f4\u65b0\u3002<\/p>\n<h2>\u5f00\u59cb\u5347\u7ea7\u7248\u672c<\/h2>\n<h3>\u5c06\u5347\u7ea7\u81f3Angular8<\/h3>\n<p>\u6211\u5011\u5c07\u6309\u7167\u66f4\u65b0\u6307\u5357\u7684\u6307\u793a\uff0c\u9032\u884c\u547d\u4ee4\u57f7\u884c\u548c\u9805\u76ee\u6aa2\u67e5\u3002<\/p>\n<p>\u67e5\u770b\u66f4\u65b0\u6307\u5357\u7684\u5185\u5bb9\u540e\uff0c\u5982\u679c\u4e3b\u8981\u7248\u672c\u4e4b\u95f4\u6709\u5f88\u5927\u5dee\u5f02\u7684\u8bdd\uff0c\u4f3c\u4e4e\u9700\u8981\u9010\u4e2a\u5347\u7ea7\u7248\u672c\u3002<br \/>\n\u6309\u7167\u66f4\u65b0\u6307\u5357\u4e2d\u6240\u8ff0\uff0c\u9996\u5148\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u5c06\u9879\u76ee\u7248\u672c\u66f4\u65b0\u81f38\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ng update @angular\/cli@8 @angular\/core@8\r\n<\/code><\/pre>\n<p>\u4f46\u662f\u51fa\u73b0\u4e86\u4ee5\u4e0b\u9519\u8bef\uff0c\u65e0\u6cd5\u6267\u884c\u8be5\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>Using package manager: 'npm'\r\nCollecting installed dependencies...\r\nFound 0 dependencies.\r\nPackage '@angular\/cli' is not a dependency.\r\n<\/code><\/pre>\n<p>\u6ca1\u6709\u627e\u5230\u4efb\u4f55\u5b89\u88c5\u5305\u3002<br \/>\n\u5f53\u524d\uff08\u622a\u81f32021\/05\/18\uff09\u7684AngularCLI\u6700\u65b0\u7248\u672c12\u4f3c\u4e4e\u4e0d\u5305\u542b\u5173\u4e8e\u7248\u672c8\u7684\u5305\u3002<br \/>\n\u56e0\u6b64\uff0c\u8bf7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u5c06\u8ba1\u7b97\u673a\u4e0a\u5df2\u5b89\u88c5\u7684AngularCLI\u7248\u672c\u964d\u81f38\u3002<\/p>\n<pre class=\"post-pre\"><code>$ npm install -g @angular\/cli@8.0.0\r\n<\/code><\/pre>\n<p>\u5c1d\u8bd5\u518d\u6b21\u6267\u884c\u4e4b\u524d\u7684\u547d\u4ee4\u540e\uff0c\u51fa\u73b0\u4e86\u4e0d\u540c\u7684\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>Using package manager: 'npm'\r\nCollecting installed dependencies...\r\nFound 35 dependencies.\r\nFetching dependency metadata from registry...\r\n                  Package \"codelyzer\" has an incompatible peer dependency to \"@angular\/core\" (requires \"&gt;=2.3.1 &lt;7.0.0 || &gt;6.0.0-beta &lt;7.0.0\" (extended), would install \"8.2.14\").\r\n                  Package \"codelyzer\" has an incompatible peer dependency to \"@angular\/common\" (requires \"&gt;=2.3.1 &lt;7.0.0 || &gt;6.0.0-beta &lt;7.0.0\" (extended), would install \"8.2.14\").\r\n                  Package \"codelyzer\" has an incompatible peer dependency to \"@angular\/compiler\" (requires \"&gt;=2.3.1 &lt;7.0.0 || &gt;6.0.0-beta &lt;7.0.0\" (extended), would install \"8.2.14\").\r\n                  Package \"codelyzer\" has an incompatible peer dependency to \"@angular\/platform-browser-dynamic\" (requires \"&gt;=2.3.1 &lt;7.0.0 || &gt;6.0.0-beta &lt;7.0.0\" (extended), would install \"8.2.14\").\r\n                  Package \"codelyzer\" has an incompatible peer dependency to \"@angular\/platform-browser\" (requires \"&gt;=2.3.1 &lt;7.0.0 || &gt;6.0.0-beta &lt;7.0.0\" (extended), would install \"8.2.14\").\r\nIncompatible peer dependencies found. See above.\r\n<\/code><\/pre>\n<p>\u5728\u8fdb\u884c\u8c03\u67e5\u540e\uff0c\u4f3c\u4e4e\u662f\u7531\u4e8e\u5bf9\u7b49\u4f9d\u8d56\u5173\u7cfb\u7684\u7248\u672c\u4e0d\u5339\u914d\u800c\u5bfc\u81f4\u7684\u9519\u8bef\u3002<br \/>\n\u5f53\u51fa\u73b0\u5bf9\u7b49\u4f9d\u8d56\u7248\u672c\u4e0d\u5339\u914d\u5bfc\u81f4\u7684\u9519\u8bef\u65f6\uff0c\u8fd8\u53ef\u80fd\u4f1a\u8f93\u51fa\u4ee5\u4e0b\u7c7b\u4f3c\u7684\u65e5\u5fd7\u3002<\/p>\n<pre class=\"post-pre\"><code>\u00d7 Migration failed: Incompatible peer dependencies found.\r\nPeer dependency warnings when installing dependencies means that those dependencies might not work correctly together.\r\nYou can use the '--force' option to ignore incompatible peer dependencies and instead address these warnings later.\r\n<\/code><\/pre>\n<p>\u5728\u90a3\u65f6\uff0c\u60a8\u5c06\u6267\u884c\u4e00\u4e2a\u6dfb\u52a0\u4e86\u5ffd\u7565\u5bf9\u7b49\u4f9d\u8d56\u5173\u7cfb\u7248\u672c\u4e0d\u5339\u914d\u7684\u9009\u9879 &#8220;&#8211;force&#8221; \u7684\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ng update @angular\/cli@8 @angular\/core@8 --force\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u80fd\u591f\u987a\u5229\u6267\u884c\uff0c\u6211\u4eec\u53ef\u4ee5\u8fdb\u884c\u4e0b\u4e00\u6b65\u64cd\u4f5c\u4e86\u3002<br \/>\n\u6839\u636e\u547d\u4ee4\u8f93\u51fa\u65e5\u5fd7\u663e\u793a\u51fa\u73b0\u4e86\u6f0f\u6d1e\uff0c\u56e0\u6b64\u6267\u884c\u201cnpm audit fix\u201d\u547d\u4ee4\u6765\u4fee\u590d\u5b83\u3002<\/p>\n<pre class=\"post-pre\"><code>added 5 packages from 8 contributors, removed 1 package, updated 1 package and audited 1396 packages in 10.624s\r\n\r\n61 packages are looking for funding\r\n  run `npm fund` for details\r\n\r\nfound 31 vulnerabilities (17 low, 5 moderate, 9 high)\r\n  run `npm audit fix` to fix them, or `npm audit` for details\r\n<\/code><\/pre>\n<p>\u7d50\u675f\u5f8c\uff0c\u52d9\u5fc5\u9032\u884c\u63d0\u4ea4\u3002\u5982\u679c\u672a\u9032\u884c\u63d0\u4ea4\uff0c\u53ef\u80fd\u6703\u5728\u4e0b\u4e00\u500b\u7248\u672c\u5347\u7d1a\u6b65\u9a5f\u4e2d\u51fa\u73fe\u932f\u8aa4\u3002<\/p>\n<h3>\u7ee7\u7eed\u66f4\u65b0<\/h3>\n<p>\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u786e\u8ba4Node.js\u7684\u7248\u672c\u662f\u5426\u4e3a10.13\u6216\u66f4\u9ad8\u3002<\/p>\n<pre class=\"post-pre\"><code>$ node --version\r\n<\/code><\/pre>\n<p>\u5728\u786e\u8ba4\u4e86Node.js\u7684\u7248\u672c\u4e4b\u540e\uff0c\u5c06\u9879\u76ee\u7684\u7248\u672c\u66f4\u6539\u4e3a9\u3002<br \/>\n\u5982\u679c\u6839\u636e\u66f4\u65b0\u6307\u5357\u4e2d\u7684\u68c0\u67e5\u9879\u76ee\u5bf9\u9879\u76ee\u8fdb\u884c\u4e86\u66f4\u6539\u81ea\u4e0a\u6b21\u7248\u672c\u5347\u7ea7\u4ee5\u6765\uff0c\u8bf7\u5728\u6267\u884c\u547d\u4ee4\u4e4b\u524d\u518d\u6b21\u63d0\u4ea4\u66f4\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ng update @angular\/core@9 @angular\/cli@9\r\n<\/code><\/pre>\n<p>\u5982\u679c\u8fdb\u884c\u4e86\u63d0\u4ea4\uff0c\u5e94\u8be5\u53ef\u4ee5\u5728\u4e0d\u53d1\u751f\u9519\u8bef\u7684\u60c5\u51b5\u4e0b\u6267\u884c\u3002\u5982\u679c\u6ca1\u6709\u8fdb\u884c\u63d0\u4ea4\uff0c\u5219\u4f1a\u53d1\u751f\u4ee5\u4e0b\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>Repository is not clean. Please commit or stash any changes before updating.\r\n<\/code><\/pre>\n<p>\u5982\u679c\u56e0\u4e3a\u67d0\u4e9b\u539f\u56e0\u4e0d\u60f3\u63d0\u4ea4\u800c\u662f\u7ee7\u7eed\u8fdb\u884c\u66f4\u65b0\uff0c\u5219\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u4ee5\u4e0b\u547d\u4ee4\u9009\u9879\u6765\u6267\u884c\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ng update @angular\/core@9 @angular\/cli@9 --allow-dirty\r\n<\/code><\/pre>\n<h3>\u589e\u52a0\u5305\u88c5<\/h3>\n<p>\u7531\u4e8eAngular 9\u6dfb\u52a0\u4e86\u65b0\u529f\u80fd\uff0c\u56e0\u6b64\u9700\u8981\u6dfb\u52a0\u65b0\u7684\u5305\u6765\u4f7f\u7528\u5b83\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ng add @angular\/localize\r\n<\/code><\/pre>\n<h3>\u7136\u540e<\/h3>\n<p>\u6309\u7167\u66f4\u65b0\u6307\u5357\u7684\u6307\u793a\uff0c\u901a\u8fc7\u91cd\u590d\u68c0\u67e5\u9879\u76ee\u5e76\u8fdb\u884c\u7248\u672c\u66f4\u65b0\uff0c\u60a8\u53ef\u4ee5\u5c06Angular\u9879\u76ee\u5347\u7ea7\u5230\u6240\u9700\u7684\u7248\u672c\u3002<\/p>\n<h3>\u6700\u7ec8<\/h3>\n<p>\u5b8c\u6210\u5de5\u4f5c\u540e\uff0c\u8bf7\u4e0d\u8981\u5fd8\u8bb0\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u5e76\u5c06Angular CLI\u7684\u7248\u672c\u6062\u590d\u5230\u7a33\u5b9a\u7248\uff0c\u4ee5\u5907\u5c06\u6765\u5f00\u59cb\u5de5\u4f5c\u65f6\u4f7f\u7528\u3002<\/p>\n<pre class=\"post-pre\"><code>$ npm install -g @angular\/cli\r\n<\/code><\/pre>\n<h2>\u603b\u7ed3<\/h2>\n<p>\u672c\u6587\u4ecb\u7ecd\u4e86\u6211\u4eec\u8fdb\u884c\u4e86\u8de8\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u7248\u672c\u5347\u7ea7\u3002\u901a\u8fc7\u9010\u4e2a\u68c0\u67e5\u66f4\u65b0\u6307\u5357\u7684\u68c0\u67e5\u9879\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u5347\u7ea7\u5355\u4e2a\u4e3b\u8981\u7248\u672c\u6765\u8fdb\u884c\u8de8\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u7248\u672c\u5347\u7ea7\u3002<\/p>\n<h2>\u6709\u70b9\u957f\u7684\u989d\u5916\u597d\u5904<\/h2>\n<p>\u5728Angular 11\u7248\u672c\u53ca\u4ee5\u540e\u7684\u9879\u76ee\u4e2d\uff0c\u7531\u4e8eTSLint\u548cCodelyzer\u7684\u4e0d\u63a8\u8350\u4f7f\u7528\uff0c\u6211\u5c06\u8bf4\u660e\u5982\u4f55\u8fc1\u79fb\u5230ESLint\u3002<\/p>\n<h3>\u6dfb\u52a0@angular-eslint\/schematics<\/h3>\n<p>\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u5728\u9879\u76ee\u4e2d\u6dfb\u52a0@angular-eslint\/schematics\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ng add @angular-eslint\/schematics\r\n<\/code><\/pre>\n<p>\u8f93\u51fa\u4e86\u5982\u4e0b\u7684\u65e5\u5fd7\uff0c\u5e76\u4e14\u6210\u529f\u5b89\u88c5\u4e86\u8f6f\u4ef6\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code>\u2139 Using package manager: npm\r\n\u2714 Found compatible package version: @angular-eslint\/schematics@12.0.0.\r\n\u2714 Package information loaded.\r\n\r\nThe package @angular-eslint\/schematics@12.0.0 will be installed and executed.\r\nWould you like to proceed? Yes\r\n\u2714 Package successfully installed.\r\n\r\n    All @angular-eslint dependencies have been successfully installed ?\r\n\r\n    Please see https:\/\/github.com\/angular-eslint\/angular-eslint for how to add ESLint configuration to your project.\r\n\r\nUPDATE package.json (1837 bytes)\r\n\u2714 Packages installed successfully.\r\n<\/code><\/pre>\n<h3>\u9009\u62e9\u8fc1\u79fb\u7684\u76ee\u6807<\/h3>\n<p>\u9009\u62e9\u8981\u6267\u884c\u8fc1\u79fb\u7684\u9879\u76ee\u3002<br \/>\n\u8fd9\u53d6\u51b3\u4e8eangular.json\u4e2d\u5b9a\u4e49\u7684\u9879\u76ee\u6570\u91cf\uff0c\u5982\u679c\u5b9a\u4e49\u4e86\u591a\u4e2a\u9879\u76ee\uff0c\u5219\u9700\u8981\u9009\u62e9\u8fc1\u79fb\u76ee\u6807\u3002<br \/>\n\u672c\u6b21\u5c06\u8fc1\u79fb\u540d\u4e3a&#8221;bookmanagement-angular&#8221;\u7684\u9879\u76ee\uff0c\u56e0\u6b64\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>$ ng g @angular-eslint\/schematics:convert-tslint-to-eslint bookmanagement-angular\r\n<\/code><\/pre>\n<p>\u987a\u5229\u5b8c\u6210\u4e86\u8fc1\u79fb\uff0c\u751f\u6210\u4e86.eslintrc.json\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>? Would you like to remove TSLint and its related config if there are no TSLint projects remaining after this conversion? Yes\r\n? Would you like to ignore the existing TSLint config? Recommended if the TSLint config has not been altered much as it makes the new \r\nESLint config cleaner. Yes\r\n\r\n    INFO: We are now installing the \"tslint-to-eslint-config\" package into a tmp directory to aid with the conversion\r\n\r\n    This may take a minute or two...\r\n\r\nCREATE .eslintrc.json (1015 bytes)\r\nUPDATE angular.json (3856 bytes)\r\n<\/code><\/pre>\n<h3>\u5220\u9664TSLint<\/h3>\n<p>\u6700\u540e\uff0c\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u5220\u9664\u4e0d\u518d\u9700\u8981\u7684TSLint\u3002<\/p>\n<pre class=\"post-pre\"><code>$ rm tslint.json \r\n$ npm uninstall tslint\r\n<\/code><\/pre>\n<h3>\u603b\u7ed3<\/h3>\n<p>\u4ee5\u4e0a\u662f\u8fc1\u79fb\u5de5\u4f5c\u7684\u7ed3\u675f\u3002<br \/>\n\u672c\u6b21\u6211\u4eec\u5c06\u4eceAngular 7\u5347\u7ea7\u5230Angular 12\u7684\u9879\u76ee\uff0c\u5c06Codelyzer\u548cTSLint\u8fc1\u79fb\u5230ESLint\u3002<br \/>\n\u5e0c\u671b\u672c\u6587\u80fd\u5bf9\u67d0\u4eba\u6709\u6240\u5e2e\u52a9\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u51c6\u5907\u4f5c\u4e1a \u5b98\u65b9\u652f\u6301\u8de8\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684\u5347\u7ea7\uff0c\u5982\u4ee5\u4e0bURL\u6240\u8ff0\u3002 Angular\u66f4\u65b0\u6307\u5357 \u6211\u4eec\u7acb\u5373\u6839\u636e\u66f4\u65b0\u6307\u5357\u5f00\u59cb\u8fdb [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-38935","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5\" \/>\n<meta property=\"og:description\" content=\"\u51c6\u5907\u4f5c\u4e1a \u5b98\u65b9\u652f\u6301\u8de8\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684\u5347\u7ea7\uff0c\u5982\u4ee5\u4e0bURL\u6240\u8ff0\u3002 Angular\u66f4\u65b0\u6307\u5357 \u6211\u4eec\u7acb\u5373\u6839\u636e\u66f4\u65b0\u6307\u5357\u5f00\u59cb\u8fdb [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-14T11:42:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-15T02:05:02+00:00\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/\",\"name\":\"\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-08-14T11:42:22+00:00\",\"dateModified\":\"2024-01-15T02:05:02+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5","og_description":"\u51c6\u5907\u4f5c\u4e1a \u5b98\u65b9\u652f\u6301\u8de8\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684\u5347\u7ea7\uff0c\u5982\u4ee5\u4e0bURL\u6240\u8ff0\u3002 Angular\u66f4\u65b0\u6307\u5357 \u6211\u4eec\u7acb\u5373\u6839\u636e\u66f4\u65b0\u6307\u5357\u5f00\u59cb\u8fdb [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-08-14T11:42:22+00:00","article_modified_time":"2024-01-15T02:05:02+00:00","author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/","name":"\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-08-14T11:42:22+00:00","dateModified":"2024-01-15T02:05:02+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u8de8\u8d8a\u591a\u4e2a\u4e3b\u8981\u7248\u672c\u7684Angular\u9879\u76ee\u7684\u5347\u7ea7\u65b9\u6cd5"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%b7%a8%e8%b6%8a%e5%a4%9a%e4%b8%aa%e4%b8%bb%e8%a6%81%e7%89%88%e6%9c%ac%e7%9a%84angular%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%8d%87%e7%ba%a7%e6%96%b9%e6%b3%95%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/38935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=38935"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/38935\/revisions"}],"predecessor-version":[{"id":58466,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/38935\/revisions\/58466"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=38935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=38935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=38935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}