Jamstack Docker + Nuxt + Contentful + Vuetify + Netfliy로 포트폴리오 작성 ②

전회의 계속입니다.
htps : // 이 m/k에 t보 w/이고 ms/89478226이다 7bd365b9cd

하고 싶은 일


  • Nuxt로 프론트 만들기
  • Docker로 환경 구축
  • Contentful에서 포트폴리오 정보 얻기
  • Vuetify에서 외형 성형
  • Netfliy에서 공개

  • Nuxt와 Contentful의 협력 부분


  • Contentful에서 SpaceID와 토큰 확인
    설정 - API kyes

    추가 API 키를 클릭하십시오

  • Space ID 및 Content Delivery API - access token 확인

    .env 만들기


    .env
    
    CTF_SPACE_ID=ContentfulのspaceID
    CTF_CDA_ACCESS_TOKEN=Contentfulのaccess token
    
    

    환경 파일은 git 저장하지 않도록 ignore 설정

    lib/config.js


    require('dotenv').config()
    
    function getValidConfig(configEnv, keys) {
      let { config, missingKeys } = keys.reduce(
        (acc, key) => {
          if (!configEnv[key]) {
            acc.missingKeys.push(key)
          } else {
            acc.config[key] = configEnv[key]
          }
          return acc
        },
        { config: {}, missingKeys: [] }
      )
    
      if (missingKeys.length) {
        throw new Error(`Contentful key is missing : ${missingKeys.join(', ')}`)
      }
      return config
    }
    
    module.exports = {
      getConfigForKeys(keys) {
        const configEnv = {
          CTF_SPACE_ID: process.env.CTF_SPACE_ID,
          CTF_CDA_ACCESS_TOKEN: process.env.CTF_CDA_ACCESS_TOKEN
        }
        return getValidConfig(configEnv, keys)
      }
    }
    
    

    키 관리 Config 준비

    plugins/contentful.js


    const contentful = require('contentful')
    const defaultConfig = {
      CTF_SPACE_ID: process.env.CTF_SPACE_ID,
      CTF_CDA_ACCESS_TOKEN: process.env.CTF_CDA_ACCESS_TOKEN
    }
    
    module.exports = {
      createClient(config = defaultConfig) {
        return contentful.createClient({
          space: config.CTF_SPACE_ID,
          accessToken: config.CTF_CDA_ACCESS_TOKEN
        })
      }
    }
    
    

    Contentful을 이용하기 위한 js를 준비

    nuxt.config.js


    import colors from 'vuetify/es5/util/colors'
    import {createClient} from './plugins/contentful.js'
    
    const pkg = require('./package')
    const {getConfigForKeys} = require('./lib/config.js')
    const ctfConfig = getConfigForKeys([
      'CTF_SPACE_ID',
      'CTF_CDA_ACCESS_TOKEN'
    ])
    
    const {createClient} = require('./plugins/contentful')
    const cdaClient = createClient(ctfConfig)
    
    export default {
      mode: 'universal',
    
    略・・・
    }
    

    nuxt.config.js 설정

    참고로 한 사이트


  • h tps:// 퀵했다. 작은 m/의사 츠지메 고다이/있어 MS/3 그림 45 아로 7C438176
  • 좋은 웹페이지 즐겨찾기