开场白
开始使用
API
- API: The <client-only> Component
- API: <nuxt-child> 组件
- API: <nuxt-link> 组件
- API: <nuxt> 组件
- API: 构建配置
- API: buildDir 属性
- API: 缓存配置
- API: CSS 配置
- API: dev 属性配置
- API: dir 属性
- API: 环境变量配置
- API: generate 属性配置
- API: globalName 属性
- API: head 属性配置
- API: The hooks Property
- API: ignore 属性
- API: The loading indicator Property
- API: loading 属性配置
- API: The mode Property
- API: modern 属性
- API: modules 属性
- API: modulesDir 属性
- API: performance 属性
- API: plugins 属性配置
- API: The render Property
- API: rootDir 属性配置
- API: router 属性配置
- API: server 属性
- API: serverMiddleware 属性
- API: srcDir 属性配置
- API: transition 属性配置
- API: vue.config 属性
- API: watch 属性
- API: watchers 属性
- API: 上下文对象
- API: asyncData 方法
- API: The Builder Class
- API: The Generator Class
- API: The ModuleContainer Class
- API: The Nuxt Class
- API: The Renderer Class
- API: Nuxt Modules Intro
- API: nuxt.renderAndGetWindow(url, options)
- API: nuxt.renderRoute(route, context)
- API: nuxt.render(req, res)
- API: Nuxt(options)
- API: fetch 方法
- API: head 方法
- API: key 属性
- API: layout 属性
- API: loading 属性
- API: middleware 属性
- API: scrollToTop 属性
- API: transition 属性
- API: validate 方法
- API: The watchQuery Property
配置
- 外部资源
- 预处理器
- JSX
- Postcss 插件
- 如何扩展 Webpack 的配置
- Webpack 插件
- Caching Components
- 如何更改应用的主机和端口配置?
- 如何集成 Google 统计分析服务?
- 如何发起跨域资源请求?
- How to extend Webpack to load audio files?
部署
- 如何使用 Now.sh 进行部署?
- 使用 Surge.sh 部署
- 在 Google App Engine 上部署
- Netlify 部署
- AWS: S3+Cloudfront 部署
- Dokku 部署
- nginx 代理
- 如何部署至 GitHub Pages?
- 部署至 Heroku
其他
开源贡献指引
欢迎为 Nuxt.js 做出开源贡献!
提交问题
我们使用CMTY使贡献者和维护者更容易的提交问题和新功能改进。
请确保包含一个克隆仓库或CodeSandBox,以便可以更好地再现错误,我们开始修复它的速度越快!
Pull Requests
欢迎大家提 PR( 源码拉取请求
),即便是修复一个拼写错误。
任何重大改进都应与现有功能请求或错误报告相关联。
开始
- Fork 代码仓库到您自己的GitHub帐户,然后 clone 到您的本地。
- 运行
npm install
或yarn install
来安装依赖。
_请注意,npm 和 yarn 都被认为丢失依赖项。要解决此问题,您可以删除示例应用程序中的nodemodules文件夹,然后重新安装或执行缺少的依赖项的本地安装。
如果要添加依赖项,请使用
yarn add
。yarn.lock
文件是所有Nuxt依赖项的最新源。
构建
在运行任何测试之前,请确保满足所有依赖项并构建所有依赖项:
yarn
yarn build
测试结构
一个伟大而出色的PR,无论是包含错误修复还是新功能,都会包含测试。
要编写出色的测试,让我们解释一下我们的测试结构:
Fixtures
这个 fixtures (在 tests/fixtures
目录下) 包含几个Nuxt应用程序。为了使构建时间尽可能短,我们不会为每个测试构建一个自己的Nuxt应用程序。相反,在运行实际的单元测试之前,构造了(yarn test:fixtures
)。
提交PR时,请确保 更改 或 添加新fixture 用来正确反映更改(如果适用)。 此外,不要忘记在更改后通过使用jest test/fixtures/my-fixture/my-fixture.test.js
运行相应的测试来重新构建fixtures。
Unit tests(单元测试)
单元测试可以在tests/unit
中找到,并将在构建fixtures后执行。每次测试,将使用新的Nuxt服务器以便不存在共享状态(除了构建步骤的初始状态)。
添加单元测试后,您可以直接运行它们:
jest test/unit/test.js
或者您可以运行整个单元测试:
yarn test:unit
请再次注意,您可能需要重新构建您的fixture!
测试您的更改
在处理PR时,您可能需要检查fixture是否设置正确或调试当前的更改。 为此,您可以使用Nuxt脚本本身来启动例如您的fixture或示例应用:
yarn nuxt examples/your-app
yarn nuxt test/fixtures/your-fixture-app
npm link
也可以(并且在某种程度上)可以为此工作,但有时它会出现一些问题。这就是为什么我们建议直接调用yarn nuxt
来运行示例。
例子
如果您正在开发更大的功能,请在 examples/
中设置一个示例应用程序。 这将有助于理解变更,并帮助Nuxt用户深入了解您提交构建的功能。
Linting
您可能已经注意到,我们正在使用 ESLint 来强制检查代码标准。请在提交之前运行yarn lint
您的更改以检查代码样式是否标准。 如果没有,你可以使用 yarn lint --fix
或 npm run lint -- --fix
(没有拼错!)来修复大部分的样式风格变化。如果仍有错误,则必须手动更正。
文档
如果您要添加新功能,请进行重构或以任何其他方式更改Nuxt的行为,您可能会这样做 想要记录变化。 Please do so with a PR to the docs repository. 请提交PR到 docs 代码仓库。您不必立即编写文档(但请在PR足够严谨及检查后提交)。
提交过程
提交PR时,您需要填写一个简单的模板。
请勾选清单中的所有对应 "answers"。
在macOS上调试测试
搜索getPort()
将显示它用于在测试期间启动新的Nuxt进程。使用macOS它有时会停止,并且可能需要您手动设置端口进行测试。
另一个常见问题是Nuxt进程在运行fixture测试时可能会挂起内存。过程通常会阻止后续测试工作。运行ps aux | grep -i node
如果您对发生这种情况不解,则检查任何挂起的测试过程。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论