欢迎来到CDNJS/static-website存储库,这是由CDNJS/Brand的新的CDNJS品牌提案构建的新CDNJS网站的所在地。
该网站完全依靠CDNJS API来运行,从而使资源使用非常低,以服务于该网站,并且有限的APP逻辑来更新所使用的数据(仅需要更新站点地图,当加载页面时,其他所有内容都会使用API调用)。
该项目在node.js上运行。请确保安装了一个版本,该版本符合我们在此项目的.NVMRC文件中定义的要求。
此项目中包括一个依赖关系锁定文件。这用于确保项目的所有安装使用相同版本的依赖项以保持一致性。
您可以通过运行以下锁定文件安装节点依赖项:
npm ci一旦安装了依赖项,该网站就可以在开发模式下运行。要在开发模式(没有自定义服务器)中启动NUXT,请运行:
npm run dev在运行npm run dev之前,添加一个全局NPM软件包来解决'NODE_ENV' is not recognized as an internal or external command问题:
npm install -g win-node-env该网站是使用NUXT构建的,并依靠WebPack来生成用于渲染网站并提供交互性的客户端捆绑包。因此,我们可以使用WebPack的分析仪更好地了解最终捆绑包大小的原因。
要运行分析器,请使用以下软件包脚本:
npm run dev:analyze使用正在开发的网站时,使用npm run dev或npm run dev:analyze , SITE_HOST环境变量将自动设置为http://localhost:3000/ ,因为这是Dev脚本可以访问网站的地方。
使用npm run build和npm run start脚本将该站点部署到生产中时,必须设置SITE_HOST环境变量,并且应该是托管该站点的规范基础。在我们的生产中,它设置为https://cdnjs.com/ 。
要启用Google Analytics(分析网站),您应该设置GA_ID环境变量。应将其设置为您属性的唯一Google Analytics ID,形式为UA-xxxxxxxxx-x 。
Google Analytics(分析)使用@nuxtjs/google-analytics模块将网站捆绑在一起。如果未指定环境变量,则不会将Google Analytics(分析)与部署捆绑在一起。
为了启用基本的Sentry错误记录,必须使用Sentry的有效DSN URL设置SENTRY_DSN环境变量。
要启用源地图和发布跟踪以进行生产中的错误报告,必须使用正确的Sentry项目信息设置SENTRY_ORG和SENTRY_PROJECT环境变量,以及将SENTRY_AUTH_TOKEN设置为Sentry的有效auth Token。源地图用作生产中的源地图,我们使用了缩小的捆绑的JavaScript,因此Sourcemaps允许Sentry显示错误来自源代码中的错误。
默认情况下,在构建过程中,将为具有User-agent: *的站点生成一个robots.txt文件: *和Allow: * 。如果您希望拥有更私人的实例或想要防止潜在的SEO污染,则可以将ROBOTS_DISALLOW env var设置为1 。这将更改Allow: * Disallow: / 。
要启用该站点的站点地图,必须将NODE_ENV设置为production 。这将使在构建过程中的初始站点地图生成以及在npm run start期间(每30分钟)再生站点地图的背景任务。
此外,通过具有NODE_ENV=production ,这也将告诉robots.txt生成脚本,上面引用的脚本包括一个基于提供的SITE_HOST env var的SiteMap索引文件的规则。
(请注意,对于npm run dev:analyze , npm run build & npm run start , NODE_ENV将自动设置为production )。
要将本网站部署到生产中,应采取以下步骤:
npm ci安装依赖项npm run build构建生产网站npm run start开始自定义Express服务器对于某些PAAS主机的部署,将自动完成依赖关系和构建应用程序的安装,而npm run start在Procfile中定义。
要更改应用程序绑定到的端口,请在运行脚本时设置PORT环境VAR。
Custom Express服务器用于处理我们的站点地图,因为我们有太多的路由NUXT的站点地图可靠地处理。在构建步骤( npm run build )期间,将生成初始站点地图。然后,Express Server将使用CDNJS API每30分钟再生一次。网站上的/sitemap-log.txt可以找到包含Express上一代结果的日志。
我们的全套覆盖测试可以随时进行:
npm test此存储库中包含的是ESLINT配置文件以及Sass-Lint配置文件,以帮助确保应用程序中使用的JS/VUE和SCSS在代码库中的一致样式。
为了帮助实施这一点,我们在测试中同时使用Eslint和Sass-lint。要随时运行ESLINT(检查任何JavaScript和Vue文件的代码样式),您可以使用:
npm run test:eslintESLINT还提供自动固定功能,这些功能可以使用:
npm run test:eslint:fix同样,可以随时运行SASS-lint,以检查应用程序中使用的所有SCSS文件的质量:
npm run test:scss可用于自动修复Sass-Lint提出的一些错误,可以通过以下方式运行:
npm run test:scss:fix与npm test同时运行Eslint&Sass-lint一样,可以自动尝试修复两个裁剪软件包中的问题,可以通过运行:可以使用:
npm run test:fix