开场白
开始使用
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
其他
Runtime Config
Nuxt.js supports env config to provide configuration via process.env
. This is done by webpack's DefinePlugin .
This approach had two downsides:
- Values are read during build time and persisted into webpack bundle. So for a change to
process.env
we need to rebuild which is against 12factor app design - It can easily mislead to expose secret keys to client-side bundle
You can learn more about why we are moving from @nuxtjs/dotenv to runtime config .
Runtime Config (2.13+)
Two new options added to nuxt.config
to allow passing runtime configuration which is then accessible using context $config
.
Config is added to Nuxt payload ( __NUXT__.config
) so there is no need to rebuild to update runtime configuration. SSR, SPA, and Static targets supported with an exception that for static target, a regenerate is necessary.
export default {
publicRuntimeConfig: {},
privateRuntimeConfig: {}
}
publicRuntimeConfig
is available using$config
in both server and client.privateRuntimeConfig
is only available on server using same$config
(it overridespublicRuntimeConfig
)
Usage
$config
is available anywhere from context (including pages, store and plugins)
export default {
asyncData({ $config: { baseURL } }) {
fetch(`${baseURL}/test`)
},
mounted() {
console.log(this.$config.testValue)
}
}
.env
support
If you have .env
file in project root directory, it will be automatically loaded using dotenv and is accessible via process.env
.
process.env
is updated so we can use it right inside nuxt.config
for runtime config. Values are interpolated and expanded with an improved version of dotenv-expand .
.env
file is also watched to reload during nuxt dev
. You can customize the env path by using --dotenv <file>
or disabling with --dotenv false
.
Expand/Interpolation Support
Supported both for dotenv and runtime config.
Expand for runtime config happens only if there is already a key (see API_SECRET
example).
Interpolation allows easy nesting env vars (see baseURL
example).
.env
:
BASE_URL=/api
PUBLIC_URL=https://nuxtjs.org
API_SECRET=1234
nuxt.config.js
:
export default {
publicRuntimeConfig: {
baseURL: process.env.BASE_URL
},
privateRuntimeConfig: {
baseURL: '${PUBLIC_URL}${BASE_URL}',
API_SECRET: '${API_SECRET}' // similar to using process.env.API_SECRET
}
}
Note, it is possible to use a function for publicRuntimeConfig
and privateRuntimeConfig
but not recommended.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论