JavaScript에서 Web 버전 SDK 사용

업데이트: 2020/01/30

이 페이지는 Cubism 4.2 이하의 구 버전용입니다. 최신 페이지는 여기

이 페이지에서는 Cubism 4 SDK for Web의 Framework를 JavaScript의 webpack 프로젝트에서 사용하는 절차를 소개합니다.

기존 JavaScript의 webpack 프로젝트에 필요한 파일 추가

Cubism 4 SDK for Web에서 다음 디렉토리를 프로젝트에 복사합니다.

  • Core 폴더
  • Framework 폴더

기존 프로젝트에 패키지 추가

기존 JavaScript의 webpack 프로젝트에서 TypeScript를 빌드하기 위해 ts-loader 패키지를 추가합니다.

프로젝트에서 다음 명령을 입력하면 package.json에 패키지가 추가됩니다. 

npm install --save-dev ts-loader

기존 프로젝트의 webpack 설정 변경

기존 JavaScript의 webpack 프로젝트에서 Framework를 빌드할 수 있도록 몇 가지 추가 설정을 구성합니다.

우선, TypeScript 파일을 webpack의 빌드 대상에 추가하기 위해서 이하를 설정합니다.

module.exports = {
  ...
  resolve: {
    extensions: ['.ts', '.js']
  } ... }

그런 다음 webpack이 빌드 시 TypeScript를 변환하기 위해 다음 설정을 추가합니다.

module.exports = {
  ...
  module: {
    rules: [
      {
        test: /.ts$/,
        exclude: /node_modules/,
        loader: 'ts-loader'
      }
    ]
  }
  ...
}

이상으로 webpack 빌드를 정상적으로 실시할 수 있게 됩니다.

아래에 webpack.config.js의 샘플을 게재합니다.

var path = require('path');

module.exports = {
  entry: './src/main.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
    publicPath: '/dist/'
  },
  resolve: {
    extensions: ['.ts', '.js'],
  },
  module: {
    rules: [
      {
        test: /.ts$/,
        exclude: /node_modules/,
        loader: 'ts-loader'
      }
    ]
  }
}

JavaScript에서 Framework 사용

JavaScript에서 TypeScript 프레임워크를 사용하는 방법입니다.

사용하고 싶은 모듈을 import하여 이용하는 경우 다음과 같이 기술합니다.

import { Live2DCubismFramework } from "../../../../Framework/live2dcubismframework";

Live2DCubismFramework.CubismFramework.CubismFramework.startup();

프레임워크 내 클래스 가져오기

프레임워크는 이름 공간 Live2DCubismFramework로 래핑되어 있기 때문에 복수 import하면 중복됩니다.
중복을 해결하려면 import 시에 다른 이름을 지정할 필요가 있는데, import 시의 이름 공간의 뒤에 as [임의의 이름]을 지정하는 것으로 해결할 수 있습니다. 

또한 import [임의의 이름] = 모듈 이름으로 작성하여 내부 모듈을 다른 이름으로 정의할 수 있습니다. 

import { Live2DCubismFramework as live2dcubismframework } from '../../../../Framework/live2dcubismframework';
import CubismFramework = live2dcubismframework.CubismFramework;

CubismFramework.startup();
이 기사가 도움이 되었나요?
아니요
이 기사에 관한 의견 및 요청사항을 보내 주시기 바랍니다.