va-gov / web
VA.gov 的前端。此仓库包含生成 www.va.gov 网站的代码。它包含一个使用 Drupal CMS 内容的 Metalsmith 静态站点构建器。此文件在此是为了发布到 https://packagist.org.cn/packages/va-gov/web,以便 CMS CI 系统可以安装它
- v0.1.1796
- v0.1.1795
- v0.1.1794
- v0.1.1793
- v0.1.1792
- v0.1.1791
- v0.1.1787
- v0.1.1786
- v0.1.1785
- v0.1.1783
- v0.1.1782
- v0.1.1781
- v0.1.1780
- v0.1.1779
- v0.1.1778
- v0.1.1777
- v0.1.1776
- v0.1.1775
- v0.1.1774
- v0.1.1773
- v0.1.1772
- v0.1.1771
- v0.1.1770
- v0.1.1769
- v0.1.1768
- v0.1.1767
- v0.1.1766
- v0.1.1765
- v0.1.1764
- v0.1.1763
- v0.1.1762
- v0.1.1761
- v0.1.1760
- v0.1.1759
- v0.1.1758
- v0.1.1757
- v0.1.1756
- v0.1.1755
- v0.1.1754
- v0.1.1753
- v0.1.1752
- v0.1.1751
- v0.1.1750
- v0.1.1749
- v0.1.1748
- v0.1.1747
- v0.1.1746
- v0.1.1745
- v0.1.1744
- v0.1.1743
- v0.1.1742
- v0.1.1741
- v0.1.1740
- v0.1.1738
- v0.1.1737
- v0.1.1736
- v0.1.1735
- v0.1.1734
- v0.1.1733
- v0.1.1732
- v0.1.1731
- v0.1.1730
- v0.1.1729
- v0.1.1728
- v0.1.1727
- v0.1.1726
- v0.1.1725
- v0.1.1724
- v0.1.1723
- v0.1.1722
- v0.1.1721
- v0.1.1720
- v0.1.1719
- v0.1.1718
- v0.1.1717
- v0.1.1716
- v0.1.1715
- v0.1.1714
- v0.1.1713
- v0.1.1712
- v0.1.1708
- v0.1.1707
- v0.1.1706
- v0.1.1705
- v0.1.1704
- v0.1.1703
- v0.1.1702
- v0.1.1701
- v0.1.1700
- v0.1.1699
- v0.1.1698
- v0.1.1697
- v0.1.1696
- v0.1.1695
- v0.1.1694
- v0.1.1693
- v0.1.1692
- v0.1.1691
- v0.1.1690
- v0.1.1689
- v0.1.1688
- v0.1.1687
- v0.1.1686
- v0.1.1685
- v0.1.1684
- v0.1.1683
- v0.1.1682
- v0.1.1681
- v0.1.1680
- v0.1.1679
- v0.1.1678
- v0.1.1677
- v0.1.1676
- v0.1.1675
- v0.1.1674
- v0.1.1673
- v0.1.1672
- v0.1.1671
- v0.1.1670
- v0.1.1669
- v0.1.1668
- v0.1.1666
- v0.1.1665
- v0.1.1664
- v0.1.1663
- v0.1.1662
- v0.1.1661
- v0.1.1660
- v0.1.1659
- v0.1.1656
- v0.1.1655
- v0.1.1654
- v0.1.1653
- v0.1.1652
- v0.1.1651
- v0.1.1650
- v0.1.1649
- v0.1.1648
- v0.1.1647
- v0.1.1646
- v0.1.1645
- v0.1.1644
- v0.1.1642
- v0.1.1641
- v0.1.1640
- v0.1.1639
- v0.1.1638
- v0.1.1637
- v0.1.1636
- v0.1.1635
- v0.1.1634
- v0.1.1633
- v0.1.1632
- v0.1.1631
- v0.1.1630
- v0.1.1629
- v0.1.1628
- v0.1.1627
- v0.1.1626
- v0.1.1625
- v0.1.1624
- v0.1.1623
- v0.1.1622
- v0.1.1621
- v0.1.1620
- v0.1.1619
- v0.1.1618
- v0.1.1617
- v0.1.1616
- v0.1.1615
- v0.1.1614
- v0.1.1613
- v0.1.1612
- v0.1.1611
- v0.1.1610
- v0.1.1609
- v0.1.1608
- v0.1.1607
- v0.1.1606
- v0.1.1605
- v0.1.1604
- v0.1.1603
- v0.1.1602
- v0.1.1601
- v0.1.1600
- v0.1.1599
- v0.1.1598
- v0.1.1597
- v0.1.1596
- v0.1.1595
- v0.1.1594
- v0.1.1593
- v0.1.1592
- v0.1.1591
- v0.1.1590
- v0.1.1589
- v0.1.1588
- v0.1.1586
- v0.1.1585
- v0.1.1584
- v0.1.1583
- v0.1.1582
- v0.1.1581
- v0.1.1580
- v0.1.1579
- v0.1.1578
- v0.1.1577
- v0.1.1576
- v0.1.1575
- v0.1.1574
- v0.1.1573
- v0.1.1572
- v0.1.1571
- v0.1.1570
- v0.1.1569
- v0.1.1568
- v0.1.1567
- v0.1.1566
- v0.1.1565
- v0.1.1564
- v0.1.1563
- v0.1.1562
- v0.1.1561
- v0.1.1559
- v0.1.1558
- v0.1.1557
- v0.1.1556
- v0.1.1555
- v0.1.1554
- v0.1.1553
- v0.1.1552
- v0.1.1551
- v0.1.1550
- v0.1.1549
- v0.1.1548
- v0.1.1546
- v0.1.1545
- v0.1.1544
- v0.1.1543
- v0.1.1542
- v0.1.1541
- v0.1.1540
- v0.1.1539
- v0.1.1538
- v0.1.1537
- v0.1.1536
- v0.1.1535
- v0.1.1534
- v0.1.1533
- v0.1.1532
- v0.1.1531
- v0.1.1530
- v0.1.1529
- v0.1.1528
- v0.1.1527
- v0.1.1526
- v0.1.1525
- v0.1.1524
- v0.1.1523
- v0.1.1522
- v0.1.1521
- v0.1.1520
- v0.1.1519
- v0.1.1518
- v0.1.1517
- v0.1.1516
- v0.1.1515
- v0.1.1514
- v0.1.1513
- v0.1.1512
- v0.1.1511
- v0.1.1510
- v0.1.1509
- v0.1.1508
- v0.1.1507
- v0.1.1506
- v0.1.1505
- v0.1.1504
- v0.1.1503
- v0.1.1502
- v0.1.1501
- v0.1.1500
- v0.1.1499
- v0.1.1498
- v0.1.1497
- v0.1.1496
- v0.1.1495
- v0.1.1494
- v0.1.1493
- v0.1.1492
- v0.1.1491
- v0.1.1490
- v0.1.1489
- v0.1.1488
- v0.1.1487
- v0.1.1486
- v0.1.1485
- v0.1.1484
- v0.1.1483
- v0.1.1482
- v0.1.1481
- v0.1.1480
- v0.1.1479
- v0.1.1478
- v0.1.1477
- v0.1.1476
- v0.1.1475
- v0.1.1474
- v0.1.1473
- v0.1.1472
- v0.1.1471
- v0.1.1470
- v0.1.1469
- v0.1.1468
- v0.1.1467
- v0.1.1466
- v0.1.1465
- v0.1.1464
- v0.1.1463
- v0.1.1462
- v0.1.1461
- v0.1.1460
- v0.1.1459
- v0.1.1458
- v0.1.1457
- v0.1.1456
- v0.1.1455
- v0.1.1454
- v0.1.1453
- v0.1.1452
- v0.1.1451
- v0.1.1450
- v0.1.1449
- v0.1.1448
- v0.1.1447
- v0.1.1446
- v0.1.1445
- v0.1.1444
- v0.1.1443
- v0.1.1439
- v0.1.1438
- v0.1.1437
- v0.1.1436
- v0.1.1435
- v0.1.1434
- v0.1.1433
- v0.1.1432
- v0.1.1431
- v0.1.1430
- v0.1.1429
- v0.1.1428
- v0.1.1423
- v0.1.1422
- v0.1.1421
- v0.1.1420
- v0.1.1419
- v0.1.1418
- v0.1.1417
- v0.1.1416
- v0.1.1415
- v0.1.1414
- v0.1.1413
- v0.1.1412
- v0.1.1411
- v0.1.1410
- v0.1.1409
- v0.1.1408
- v0.1.1407
- v0.1.1406
- v0.1.1405
- v0.1.1404
- v0.1.1403
- v0.1.1402
- v0.1.1401
- v0.1.1400
- v0.1.1399
- v0.1.1398
- v0.1.1397
- v0.1.1396
- v0.1.1395
- v0.1.1393
- v0.1.1392
- v0.1.1391
- v0.1.1390
- v0.1.1389
- v0.1.1388
- v0.1.1387
- v0.1.1386
- v0.1.1385
- v0.1.1384
- v0.1.1383
- v0.1.1382
- v0.1.1381
- v0.1.1380
- v0.1.1379
- v0.1.1378
- v0.1.1377
- v0.1.1376
- v0.1.1375
- v0.1.1374
- v0.1.1373
- v0.1.1372
- v0.1.1371
- v0.1.1370
- v0.1.1369
- v0.1.1368
- v0.1.1367
- v0.1.1366
- v0.1.1365
- v0.1.1364
- v0.1.1363
- v0.1.1362
- v0.1.1361
- v0.1.1360
- v0.1.1359
- v0.1.1358
- v0.1.1357
- v0.1.1356
- v0.1.1355
- v0.1.1354
- v0.1.1353
- v0.1.1352
- v0.1.1351
- v0.1.1350
- v0.1.1349
- v0.1.1347
- v0.1.1346
- v0.1.1345
- v0.1.1344
- v0.1.1343
- v0.1.1342
- v0.1.1341
- v0.1.1340
- v0.1.1339
- v0.1.1338
- v0.1.1337
- v0.1.1336
- v0.1.1335
- v0.1.1334
- v0.1.1333
- v0.1.1332
- v0.1.1331
- v0.1.1330
- v0.1.1329
- v0.1.1328
- v0.1.1327
- v0.1.1326
- v0.1.1325
- v0.1.1324
- v0.1.1323
- v0.1.1322
- v0.1.1321
- v0.1.1320
- v0.1.1319
- v0.1.1318
- v0.1.1317
- v0.1.1316
- v0.1.1315
- v0.1.1314
- v0.1.1313
- v0.1.1312
- v0.1.1311
- v0.1.1310
- v0.1.1309
- v0.1.1308
- v0.1.1307
- v0.1.1306
- v0.1.1305
- v0.1.1304
- v0.1.1303
- v0.1.1302
- v0.1.1301
- v0.1.1300
- v0.1.1299
- v0.1.1298
- v0.1.1297
- v0.1.1296
- v0.1.1295
- v0.1.1294
- v0.1.1293
- v0.1.1291
- v0.1.1290
- v0.1.1289
- v0.1.1288
- v0.1.1287
- v0.1.1286
- v0.1.1285
- v0.1.1284
- v0.1.1283
- v0.1.1282
- v0.1.1281
- v0.1.1280
- v0.1.1279
- v0.1.1278
- v0.1.1277
- v0.1.1276
- v0.1.1275
- v0.1.1274
- v0.1.1272
- v0.1.1271
- v0.1.1270
- v0.1.1269
- v0.1.1268
- v0.1.1267
- v0.1.1266
- v0.1.1265
- v0.1.1264
- v0.1.1263
- v0.1.1262
- v0.1.1261
- v0.1.1260
- v0.1.1259
- v0.1.1258
- v0.1.1257
- v0.1.1248
- v0.1.1247
- v0.1.1246
- v0.1.1245
- v0.1.1244
- v0.1.1243
- v0.1.1242
- v0.1.1241
- v0.1.1240
- v0.1.1239
- v0.1.1238
- v0.1.1237
- v0.1.1236
- v0.1.1235
- v0.1.1234
- v0.1.1233
- v0.1.1232
- v0.1.1231
- v0.1.1230
- v0.1.1229
- v0.1.1228
- v0.1.1227
- v0.1.1226
- v0.1.1225
- v0.1.1224
- v0.1.1223
- v0.1.1222
- v0.1.1221
- v0.1.1220
- v0.1.1219
- v0.1.1218
- v0.1.1217
- v0.1.1216
- v0.1.1215
- v0.1.1214
- v0.1.1213
- v0.1.1212
- v0.1.1211
- v0.1.1210
- v0.1.1207
- v0.1.1206
- v0.1.1205
- v0.1.1204
- v0.1.1203
- v0.1.1202
- v0.1.1201
- v0.1.1200
- v0.1.1199
- v0.1.1198
- v0.1.1197
- v0.1.1196
- v0.1.1195
- v0.1.1194
- v0.1.1193
- v0.1.1192
- v0.1.1191
- v0.1.1190
- v0.1.1189
- v0.1.1187
- v0.1.1186
- v0.1.1184
- v0.1.1183
- v0.1.1182
- v0.1.1181
- v0.1.1180
- v0.1.1179
- v0.1.1178
- v0.1.1177
- v0.1.1176
- v0.1.1175
- v0.1.1174
- v0.1.1173
- v0.1.1172
- v0.1.1171
- v0.1.1170
- v0.1.1169
- v0.1.1168
- v0.1.1167
- v0.1.1166
- v0.1.1165
- v0.1.1164
- v0.1.1163
- v0.1.1162
- v0.1.1161
- v0.1.1160
- v0.1.1159
- v0.1.1158
- v0.1.1157
- v0.1.1156
- v0.1.1155
- v0.1.1154
- v0.1.1153
- v0.1.1152
- v0.1.1151
- v0.1.1149
- v0.1.1148
- v0.1.1147
- v0.1.1146
- v0.1.1145
- v0.1.1144
- v0.1.1143
- v0.1.1142
- v0.1.1141
- v0.1.1140
- v0.1.1139
- v0.1.1138
- v0.1.1137
- v0.1.1136
- v0.1.1135
- v0.1.1134
- v0.1.1133
- v0.1.1132
- v0.1.1131
- v0.1.1130
- v0.1.1129
- v0.1.1128
- v0.1.1127
- v0.1.1126
- v0.1.1125
- v0.1.1124
- v0.1.1123
- v0.1.1122
- v0.1.1121
- v0.1.1120
- v0.1.1119
- v0.1.1118
- v0.1.1117
- v0.1.1116
- v0.1.1115
- v0.1.1114
- v0.1.1113
- v0.1.1112
- v0.1.1111
- v0.1.1110
- v0.1.1109
- v0.1.1108
- v0.1.1107
- v0.1.1106
- v0.1.1105
- v0.1.1104
- v0.1.1103
- v0.1.1102
- v0.1.1101
- v0.1.1100
- v0.1.1099
- v0.1.1098
- v0.1.1097
- v0.1.1096
- v0.1.1095
- v0.1.1094
- v0.1.1093
- v0.1.1092
- v0.1.1091
- v0.1.1090
- v0.1.1089
- v0.1.1088
- v0.1.1087
- v0.1.1086
- v0.1.1085
- v0.1.1084
- v0.1.1083
- v0.1.1082
- v0.1.1081
- v0.1.1080
- v0.1.1079
- v0.1.1078
- v0.1.1077
- v0.1.1076
- v0.1.1075
- v0.1.1074
- v0.1.1073
- v0.1.1072
- v0.1.1071
- v0.1.1070
- v0.1.1069
- v0.1.1068
- v0.1.1066
- v0.1.1065
- v0.1.1064
- v0.1.1063
- v0.1.1062
- v0.1.1061
- v0.1.1060
- v0.1.1059
- v0.1.1058
- v0.1.1057
- v0.1.1056
- v0.1.1055
- v0.1.1054
- v0.1.1053
- v0.1.1051
- v0.1.1050
- v0.1.1049
- v0.1.1048
- v0.1.1047
- v0.1.1046
- v0.1.1045
- v0.1.1044
- v0.1.1043
- v0.1.1042
- v0.1.1041
- v0.1.1040
- v0.1.1039
- v0.1.1038
- v0.1.1037
- v0.1.1036
- v0.1.1035
- v0.1.1034
- v0.1.1033
- v0.1.1032
- v0.1.1031
- v0.1.1030
- v0.1.1029
- v0.1.1028
- v0.1.1027
- v0.1.1026
- v0.1.1025
- v0.1.1024
- v0.1.1023
- v0.1.1022
- v0.1.1021
- v0.1.1020
- v0.1.1019
- v0.1.1018
- v0.1.1017
- v0.1.1016
- v0.1.1015
- v0.1.1014
- v0.1.1013
- v0.1.1012
- v0.1.1011
- v0.1.1010
- v0.1.1009
- v0.1.1008
- v0.1.1007
- v0.1.1006
- v0.1.1005
- v0.1.1004
- v0.1.1003
- v0.1.1002
- v0.1.1001
- v0.1.1000
- v0.1.999
- v0.1.998
- v0.1.997
- v0.1.996
- v0.1.995
- v0.1.994
- v0.1.993
- v0.1.992
- v0.1.991
- v0.1.990
- v0.1.989
- v0.1.988
- v0.1.987
- v0.1.986
- v0.1.985
- v0.1.984
- v0.1.983
- v0.1.982
- v0.1.981
- v0.1.980
- v0.1.979
- v0.1.978
- v0.1.977
- v0.1.976
- v0.1.975
- v0.1.974
- v0.1.973
- v0.1.972
- v0.1.970
- v0.1.969
- v0.1.968
- v0.1.960
- v0.1.951
- v0.1.932
This package is auto-updated.
Last update: 2024-09-15 01:43:10 UTC
README
目录
- 这是什么?
- 常用命令
- 构建
vets-website - 在 GitHub Codespaces 中工作
- 运行测试
- 更改虚拟代理后端 URL
- 运行本地开发的模拟 API
- 更多命令
- 支持的浏览器
- API 密钥
- 其他资源
这是什么?
这是 VA.gov 的前端仓库。它包含用于网站全站的代码。
有几个仓库包含构建 VA.gov 所需的代码和内容。如果您想开始在本地运行 VA.gov,请阅读入门文档。
常用命令
一旦您在本地设置好了网站,以下是一些您可能觉得有用的常用命令
构建 vets-website
构建应用程序
vets-website 使用 Webpack 打包应用程序资产。
要 构建所有应用程序,运行以下命令
yarn build
要 构建一个或多个应用程序,您可以使用 --entry 选项
yarn build --entry=static-pages,auth
要 在您做出更改时重新编译应用程序,运行
yarn watch
您还可以使用 --env entry 限制 Webpack 构建的应用程序
yarn watch --env entry=static-pages,auth
您应用程序的 entryname 可在 manifest.json 文件中找到。
如果您正在开发需要 API 但无法或不想在本地运行的功能,可以指定 --env api
yarn watch --env api=https://dev-api.va.gov
当使用非本地 API 时,您需要在浏览器中禁用 CORS。以下是一些说明如何做到这一点的有用链接
- https://stackoverflow.com/questions/3102819/disable-same-origin-policy-in-chrome
- https://stackoverflow.com/questions/4556429/disabling-same-origin-policy-in-safari
注意:如果您尝试登录,ID.me 将将您重定向到 API 已设置的相应环境。因此,在上面的示例中,您将被重定向回 dev.va.gov。
构建静态内容
静态页面是从 content-build 仓库创建的。请参阅 构建静态内容 文档。
同时构建两者
在 构建应用程序 之后,在 ../content-build 目录中运行 yarn build 将使用从 vets-website/build/localhost/generated 生成的应用程序包构建内容。完整的构建可以在 ../content-build/build/localhost 中查看。
在 GitHub Codespaces 中工作
运行测试
单元测试
要 运行所有单元测试,使用
yarn test:unit
如果您只想 运行一个测试文件,可以提供其路径
yarn test:unit src/applications/path/to/test-file.unit.spec.js
要 运行 src/applications 目录中文件夹的所有测试,可以使用 app-folder
yarn test:unit --app-folder hca
要 运行目录中的所有测试,可以使用 glob 模式
yarn test:unit src/applications/path/to/tests/**/*.unit.spec.js*
要运行带有堆栈跟踪的测试,请传递日志级别 trace
yarn test:unit --log-level trace
要运行带有覆盖率输出的测试,您可以传递覆盖率选项
yarn test:unit --coverage
要运行带有覆盖率和在浏览器中打开特定应用的覆盖率报告的测试,请从 src/applications 运行
yarn test:coverage-app {app-name}
关于测试运行器使用的帮助,您可以运行
yarn test:unit --help
端到端(E2E)/浏览器测试
- Cypress 运行 E2E 或浏览器测试
在运行 Cypress 测试之前,请确保
vets-website在本地上 3001 端口运行- 您可以使用
yarn watch来完成此操作
- 您可以使用
vets-api不 在运行- 任何必需的 API 都将由需要它们的 Cypress 测试进行模拟。
要打开 Cypress 测试运行器 UI 并在其中运行任何测试
yarn cy:open
要打开 Codespaces 中的 Cypress 测试运行器 UI 并在其中运行任何测试
yarn cy:open-codespaces
然后访问 https://:6080/ 并使用密码 vscode 登录。
要使用命令行运行 Cypress 测试
yarn cy:run
要使用命令行运行特定的 Cypress 测试
# Running one specific test. yarn cy:run --spec "path/to/test-file.cypress.spec.js" # Running multiple specific tests. yarn cy:run --spec "path/to/test-a.cypress.spec.js,path/to/test-b.cypress.spec.js" # Running tests that match a glob pattern. yarn cy:run --spec "src/applications/my-app/tests/*" yarn cy:run --spec "src/applications/my-app/tests/**/*" # Running tests that match multiple glob patterns. yarn cy:run --spec "src/applications/a/tests/**/*,src/applications/b/tests/**/*"
要使用命令行在特定浏览器上运行 Cypress 测试
yarn cy:run --browser chrome yarn cy:run --browser firefox
要使用报告运行 Cypress 测试
yarn cy:run:localreports my-app-folder
示例
yarn cy:run:localreports appeals/995yarn cy:run:localreports ask-a-question
之后,检查 /mochawesome-report 内容。
有关 yarn cy:run 的其他选项,请参阅 cypress run 的相同选项.
更改虚拟代理后端 URL
如果没有,请在项目的根目录中创建一个 .env 文件,并在更新 URL 时添加以下内容
VIRTUAL_AGENT_BACKEND_URL=https://some.url.com
运行本地开发的模拟 API
从您本地的开发服务器中分离的终端运行
yarn mock-api --responses path/to/responses.js
有关如何使用 responses.js 的信息,请参阅 mocker-api 使用文档.
如果您需要登录,请转到浏览器开发工具控制台并输入 localStorage.setItem('hasSession', true) 并刷新页面。这将会触发一个 /v0/user 调用,然后获取已登录用户的模拟响应。(当然,假设您已模拟该响应。)
对常见的 API 请求的响应,如 /v0/user 和 /v0/maintenance_windows,您可以使用 src/platform/testing/local-dev-mock-api/common.js
const commonResponses = require('src/platform/testing/local-dev-mock-api/common'); module.exports = { ...commonResponses, 'GET path/to/endpoint': { foo: 'bar' }, };
更多命令
经过一段时间后,您可能会遇到一个不太常见的问题。我们有很多命令来做非常具体的事情。
支持的浏览器
API 密钥
为了在本地使用设施定位器,您需要一个具有开发访问权限的 Mapbox API 密钥。有关处理非公开密钥和令牌的详细信息,请参阅 此链接。您需要访问 AWS 系统管理器中的参数存储,并从以下位置获取开发 Mapbox 令牌:/dsva-vagov/vets-website/dev/mapbox_token。
在 vets-website 的根目录中创建一个 .env 文件,并将上述令牌分配给名为 MAPBOX_TOKEN 的变量。.env 文件应该已经配置为与 dotenv 一起用于 webpack。确保 .env 文件在 .gitignore 中,并注意不要在任何公共提交中泄露此令牌。有关请求 AWS 访问的说明,请参阅 此链接。
其他资源
- 前端开发者文档主页
- 手册 和 自动化 508 测试
- 使用 yarn Workspaces
不是仓库成员但想加入吗?
- 如果您在 VA.gov 平台团队中,请联系您的项目经理。
- 如果您在 VFS 团队中,您必须完成 平台入门培训 才能加入此仓库。这包括在 GitHub 中完成您的平台入门培训票据。