npm install node-sass sass-loader --save-dev

 

npm install --save-dev node-sass sass-loader

 

반응형

 

A Vue.js Sidebar Menu Component

 

https://codespots.com/library/item/1180

 

A Vue.js Sidebar Menu Component-Codespots.com

A Vue.js Sidebar Menu Component. vue-sidebar-menu A Vue.js Sidebar Menu Component Demo vue-sidebar-menu-demo Installation npm i vue-sidebar-menu --save Install the plugin globally. //main.js import Vue from 'vue' import VueSidebarMenu from 'vue-sidebar-men

codespots.com

vue-sidebar-menu Demo

vue-sidebar-menu demo

https://codesandbox.io/s/nrnlu?file=/src/main.js 

 

vue-sidebar-menu demo - CodeSandbox

vue-sidebar-menu demo by yaminncco using vue, vue-router, vue-sidebar-menu

codesandbox.io

 

반응형

Vue 로 작업한 프로젝트를 IE화면테스트 하던 중에 흰 화면 (Blank)이 뜨며 오류를 발견.

프로젝트에 사용된 Vue-cli 버전은 3이상으로 

Vue 3.x 부터는 ES6 사용으로 인해 IE브라우저를 지원하지 않는다. 

 

pollyfil 를 설치하여 별도로 세팅이 필요.


터미널(cmd) 설치

npm install --save @babel/polyfill
npm install --save-dev @babel/preset-env

main.js (주의: 최상단에 위치할 것)

//main.js

import '@babel/polyfill'
import Vue from 'vue'

vue.config.js 세팅된 선언이 많을 경우 하단에 ' , ' 입력 후 이어서 붙여주기

//vue.config.js

const ansiRegex = require('ansi-regex');

module.exports = {
	transpileDependencies: [ansiRegex]
}
 

babel.config.js

//babel.config.js

module.exports = {
	presets: [
		['@babel/preset-env']
	]
}
반응형

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=psj9102&logNo=221430447361 

 

Vue : vue-router 페이지 이동

안녕하십니까. NoDe 입니다. 우선 설치부터 하겠습니다. -- 스펙 @vue/cli 3 입니다. # 설치 > npm in...

blog.naver.com

vue router 에서 쓰는 것과 같은 브라우저 history api 를 활용하는 것이 좋습니다 

 

https://sunny921.github.io/posts/vuejs-router-03/

 

반응형

 

Github 계정이 없다면 미리 가입 후 진행하기.

 

SSH Key

GitHub 접속 시 SSH키가 필요한 이유

로컬에서 Git을 단독 사용하면 SSH가 필요없지만 

안전하게 외부 Git서버에 코드를 Push 하기위해 SSH프로토콜을 사용합니다. 

GitHub처럼 원격에서 Git저장소를 호스팅해주는 에서도 모두 SSH프로토콜을 지원하고 있습니다.

 

SSH키 확인하기

먼저 ssh키를 확인해 줍니다.

id_rsa.pub, id_ed25519.pub 등 .pub 파일이 있으면 이미 존재해서 새로 만들 필요 없습니다.
디렉토리 또는 파일이 없으면 CMD에서 새로 만듭니다.

$ cd ~/.ssh
$ ls

 

SSH키 생성하기

$ ssh-keygen -t ed25519  -C "your_email@example.com"
참고: Ed25519 알고리즘을 지원하지 않는 레거시 시스템을 사용하는 경우 다음을 사용합니다.
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

 

"키를 저장할 파일 입력"이라는 메시지가 표시되면 Enter 키를 눌러 기본 파일 위치를 적용

 

Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\xxx/.ssh/id_ed25519):

 

패스워드를 설정(불필요시 Enter) 깃헙에선 패스워드사용을 권장하고 있습니다.

추후 설정도 가능하니 일단 엔터 후 진행.

패스워드 추가 또는 변경 가이드 링크

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

 

cmd창에서 생성된 SSH 확인하기

(전 시스템 cmd창에서 확인이 안되서 Git Bash에서 출력했습니다.)

$ cd ~/.ssh
$ ls

아래처럼 확인할 수 없는경우 Git bash에서 확인해보세요.

시스템 cmd에서 오류

Git Bash에서 ssh 확인

Git Bash에서 cd ~/.ssh  명령어를 입력하여 ssh디렉토리로 이동 후  ls 파일리스트 출력 명령어를 입력하면

생성된 파일목록들을 (id_ed25519  id_ed25519.pub) 확인할 수 있습니다.

id_ed25519 -> 개인키

id_ed25519.pub -> 공개키

$ cd ~/.ssh
$ ls

 

 

개인키를 출력해보려면 목록을 확인한 디렉토리에서 아래의 명령어를 실행해 줍니다.

(개인키는 절대 공개되면 안됩니다.)

$ cat id_ed25519

 

공개 키(Public Key) 확인

아래의 명령을 실행시켜 공개키를 출력하고 출력된 공개키를 복사해 줍니다.

$ cat id_ed25519.pub

 

 

공개 키(Public Key)를 Github 계정에 등록하기

Tilte에는 등록하려는 키의 이름을 입력합니다. 이메일이나 본인이 구분하기 편리하도록 이름을 정해줍니다.

Key 입력박스 안에는 cat id_ed25519.pub로 확인된 공개키를 복사해서 입력해줍니다.

 

SSH Key Add New 링크

 

Add SSH Key 버튼을 누르면 아래처럼 공개키가 Github에 등록됩니다.

 

브라우저창에 github.com/[USERNAME].keys 를 입력하면 사용자의 공개키를 확인할 수 있습니다.

 

GPG Key

GPG 키 생성

$ gpg --gen-key

GPG 키를 이용해서 커밋에 서명하기

$ git config --global user.email test@email.com
$ git config --global user.name "Test RealName"
$ git config --global user.signingkey keynumber
$ git config --global commit.gpgsign true
$ git config --global gpg.program gpg

 

 

----

 

관련 자료:

 

 

https://docs.github.com/ko/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

 

새 SSH 키 생성 및 ssh-agent에 추가 - GitHub Docs

SSH 키 암호 정보 SSH(Secure Shell Protocol)를 사용하여 GitHub.com의 리포지토리에서 데이터에 액세스하고 쓸 수 있습니다. SSH를 통해 연결할 때 로컬 머신에서 프라이빗 키 파일을 사용하여 인증합니다.

docs.github.com

https://www.lainyzine.com/ko/article/creating-ssh-key-for-github/

 

GitHub 접속 용 SSH 키 만드는 방법

GitHub의 저장소를 사용할 때 HTTPS과 SSH 프로토콜을 사용할 수 있습니다. SSH 프로토콜은 공개키 방식으로 안전하게 정보를 교환할 수 있습니다. 이번 글에서는 공개키를 만드는 방법부터, GitHub에

www.lainyzine.com

 

반응형

(Git , Bitbucket , SourceTree 개발환경)

 

SourceTree(소스트리) 설치

 

1. 최신 소스트리 다운받기

https://www.sourcetreeapp.com/

 

Sourcetree | Free Git GUI for Mac and Windows

A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

www.sourcetreeapp.com

2. Install 

  • Bitbucket Server선택
    • Bitbukcet Server는 설치형으로 개별서버를 설치할 경우의 로그인할때 사용
    • Bitbucket은 Atlassian의 Bitbucket에 가입된 사용자가 로그인할 때 사용

소스트리 설치단계1

3. Registration

  • Url입력: pms 비트버킷 url
  • 사용자 입력
  • 계정로그인
  • 등록완료

4. 도구설치

  • 머큐리얼 선택해제 후 다음 선택
    • 머큐리얼은 Git과 비슷한 Tool

소스트리 설치단계 2_도구설치 (머큐리얼 체크박스 해제)

5. Preference

  • 다음선택
  • 완료

 

소스트리 사용법

https://kang-ji.tistory.com/202?category=946809 

 

Git / SourceTree(소스트리) 기본 사용법 (커밋, 푸시, 풀, 스태시, 브랜치이동)

커밋 Commit 현재 작업공간의 상태를 커밋으로 만들어서 저장소에 저장한다. 파일상태에서 변경사항 확인하여 커밋 주황아이콘  → 수정(변경)된 파일 보라아이콘  → 새로 추가된 파일 수정

kang-ji.tistory.com

 

반응형

i18n 설치

- 현재 9버전까지 나온상태 

- vue 3버전 일 경우엔 9버전으로 설치해야합니다.

- 반대로 vue 2 이하 버전일 경우 8버전으로 설치해야 정상적으로 작동됩니다.  (최신버전으로 설치할 경우 esm.bundelr.js 경고가 뜨며 정상적으로 출력되지 않는다.)

// vue 2.X
npm install vue-i18n@8

// vue 3.X
npm install vue-i18n@9

 

locales/ko.json

- json파일을 통해 언어 별도 관리

- json파일에는 주석 사용불가

{
	"example":"ttttttt",
    "group": {
        "ttl_1": "타이틀1",
        "ttl_2": "타이틀2",
        "ttl_3": "타이틀3"
    }
}

 

locales/en.json

{
	"example":"ttttttt",
    "group": {
        "ttl_1": "ttl1",
        "ttl_2": "ttl_2",
        "ttl_3": "ttl_3"
    }
}

 

locales/i18n.js 

import Vue from "vue";
import VueI18n from "vue-i18n";
import en from "@/locales/en.json";
import ko from "@/locales/ko.json";

//import axios from 'axios'

Vue.use(VueI18n);

export const i18n = new VueI18n({
  locale: "ko",
  fallbackLocale: "en",
  messages: { en, ko },
});

const loadedLanguages = ["ko"];

export function loadLanaguageAsync(lang) {
  if (i18n.locale === lang) {
    return Promise.resolve(lang);
  }

  if (loadedLanguages.includes(lang)) {
    return Promise.resolve();
  }
}

 

main.js

import Vue from "vue";
import App from "./App.vue";
// import router from "@/routes/index";
// import store from "@/store/index";
import { i18n } from "@/locales/i18n";

Vue.config.productionTip = false;

new Vue({
  // router,
  // store,
  i18n,
  render: (h) => h(App),
}).$mount("#app");

 

component.vue

// component.vue
<template>
    <p>{{ $t("example")}}</p>
    <p>{{ $t("group.ttl1")}}</p>
    <p>{{ $t("group.ttl2")}}</p>
</template>

이때 태그내에 <em>,<b>,<br> 등의 style요소를 주기위한 태그들이 들어갈 경우 v-html을 사용하여 적용시켜준다,. 

// component.vue
<template>
    <p>{{ $t("example")}}</p>
    <p v-html="$t('example')"></p>
    <p v-html="$t('group.ttl1')"></p>
    <p v-html="$t('group.ttl2')"></p>
</template>

 

반응형

blog.naver.com/phongdaegi/222093156060

 

[HTML] 웹 스토리지(Web Storage API) 란 무엇인가? (로컬, 세션 스토리지)

Web Storage API예제​

blog.naver.com

blog.naver.com/chon_5/222112740164

 

웹 스토리지(로컬 스토리지, 세션 스토리지)란?

웹 스토리지(Web Storage)란?#로컬스토리지 #세션스토리지 #간단요약웹 스토리지는 클라이언트 측에 데이...

blog.naver.com

blog.naver.com/rkdudwl/222052223529

 

세션 스토리지, 로컬 스토리지, 쿠키 개념 및 차이

로컬 스토리지와 세션 스토리지는 HTML5에서 추가된 저장소이다.(HTML5 이전 버전은 지원하지 않음...

blog.naver.com

sir.kr/pb_tip/246

 

Ajax에서 [즐겨찾기]와 [뒤로가기]를 다루는 방법! > SIR

아래의 Ajax 게시판에서 보았듯이 ... 게시판 리스트에서 내용을 보고 나서 뒤로 가려고 해도
익스플로러의 뒤로 가기 버튼이 활성화 되지 않습니다~!
이런 이유로 해서 게시판 이용이 불

sir.kr

 

퀵메뉴기능?

사용자마다 메뉴저장할라면

쿠키, 세션스토리지, DB인데

 

쿠키, 세션스토리지는 컴퓨터나 디바이스환경 바뀌면 유지가 안됨.

 

어느환경에서나 유지가 되야 한다면 DB로   

반응형

기존 모바일에서 확대 축소를 막기 위해선

 

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

코드만 추가해주기만 하면 정상적으로 작동이 됬습니다.

 

IOS 10 이후 새 기능으로 

 

To improve accessibility on websites in Safari, users can now pinch-to-zoom even when a website sets user-scalable=no in the viewport.

가 추가됨과 동시에 user-scalable=no 만으로는 아이폰 사파리에서 확대 축소가 불가능해졌습니다.

 

오늘은  css의 touch-action 으로 모바일 확대 축소 막는 방법을 알아보겠습니다.


touch-action: pan-y;

를 사용하게 되면 세로 터치는 가능하게 되고 전체 확대는 불가능하게 됩니다.

 

juyeol.tistory.com/30

 

[IOS] safari에서 확대 축소 막기

기존 모바일에서 확대 축소를 막기 위해선 코드만 추가해주기만 하면 정상적으로 작동이 됬습니다. IOS 10 이후 새 기능으로 To improve accessibility on websites in Safari, users can now pinch-to-zoom even..

juyeol.tistory.com

 

모바일 기기에서 화면이 확대/축소되지 않도록 설정하기

 

요즘 나오는 대부분의 워드프레스는 반응형(Responsive)으로 나오기 때문에 모바일 기기에서는 자동으로 모바일 버전이 표시됩니다. 모바일 버전에서 손가락을 벌리거나 오므리면 화면이 확대/축소되지 않도록 설정하려면 다음 코드를 header.php 파일에 추가하도록 합니다.

 

인터넷 익스플로러(IE) 10 버전에서 제대로 작동하지 않는 경우 -ms-content-zooming: none | zoom 구문을 사용합니다(여기 참고). 가령 다음과 같은 CSS 코드를 스타일시트 파일에 추가하도록 합니다.

 

html { -ms-content-zooming: none; -ms-touch-action: pan-x pan-y; } // Source: stackoverflow

 

Disable pinch to zoom in IE10

In IE10 touch mode I wish to make only a certain part of the page zoomable. The rest should not be. I found this: http://msdn.microsoft.com/en-US/library/ie/hh772044.aspx and tried to set -ms-touch-

stackoverflow.com

 

 

모바일 기기에서 가로로 스크롤되지 않도록 하기

모바일 장치에서 가로(수평)로 스크롤되지 않도록 하려면 다음과 같은 코드를 시도해봅니다.

body{ width:320px; // 혹은 적당한 크기 또는 100% overflow-x:hidden; }

이 내용은 더 이상 유효하지 않다고 Matthew님께서 알려주셨습니다. 아이폰, 스마트폰 미디어 쿼리는 "아이패드, 아이폰, 스마트폰 등의 모바일 기기에 사용 가능한 미디어 쿼리"를 참고해보시기 바랍니다.

 

 

big-blog.tistory.com/1448

 

모든 최신 브라우저에서 페이지 확대 / 축소 수준을 감지하는 방법은 무엇입니까?

모든 최신 브라우저에서 페이지 확대 / 축소 수준을 감지하는 방법은 무엇입니까? 모든 최신 브라우저에서 페이지 확대 / 축소 수준을 어떻게 감지합니까? 이 스레드 는 IE7 및 IE8에서 수행하는

big-blog.tistory.com

 

반응형

ios 터치이벤트 (hover이벤트 문제, 더블터치시 화면확대현상)

 

iOS Safari에서 더블 터치로 인한 화면 확대 방지 (두번 탭 확대 방지)

 

iOS 10에서부터 뷰포트 메타에 user-scalable=no 가 정상 실행되지 않아 사용자의 임의 확대 축소를 막을 수 없게 됨.

touch-action: manipulation를 사용하는 것으로 해결이 안되는 상황일 때.

note.toice.net/2017/09/13/iOS-double-touch-zoom/

 

iOS 두번 탭 확대 방지

iOS Safari에서 더블 터치로 인한 화면 확대 방지 iOS 10에서부터 뷰포트 메타에 user-scalable=no 가 정상 실행되지 않아 사용자의 임의 확대 축소를 막을 수 없게 됨. 문제사용자의 확대/축소 의도가 아�

note.toice.net

 

해결 방법

어떡하지 고민하다 그런 문제가 발생하지 않는 기존 작업페이지를 보니 FastClick이 모두 적용되어 있어서 체크해보니 해당 현상을 막을 수 있는게 덤.
FastClick 플러그인 적용 https://github.com/ftlabs/fastclick

주의

이미 작업되어진 페이지에 추가로 FastClick 플러그인을 사용할 경우 페이지내 클릭 테스트가 필요.
특히 iScroll 플러그인을 사용한 영역에서 클릭이 되지 않을 수 있으니 특히 더 주의.
만약 플러그인 적용 후 클릭이 되지 않으면 해당 엘리먼트 클래스에 needsclick 추가.
(참고 : https://github.com/ftlabs/fastclick#ignore-certain-elements-with-needsclick)

 


hover이벤트 문제

 

마우스를 시뮬레이션하기 위해 Webkit 모바일과 같은 브라우저는 사용자가 터치 스크린 (예 : iPad)에서 손가락을 뗀 경우 다음 이벤트를 발생시킵니다 (출처 : html5rocks.com의 Touch And Mouse ).

  1. touchstart
  2. touchmove
  3. touchend
  4. 300ms 지연, 브라우저는 이것이 두 번 탭이 아니라 한 번 탭인지 확인합니다.
  5. mouseover
  6. mouseenter
    • 참고 하십시오 경우 mouseover, mouseenter또는 mousemove이벤트 페이지 내용을 변경, 다음 이벤트가 실행되지 않습니다.
  7. mousemove
  8. mousedown
  9. mouseup
  10. click

단순히 웹 브라우저에 마우스 이벤트를 건너 뛰도록 지시하는 것은 불가능 해 보입니다.

더 나쁜 것은 마우스 오버 이벤트가 페이지 콘텐츠를 변경하는 경우 Safari 웹 콘텐츠 가이드-이벤트 처리 , 특히 One-Finger 이벤트의 그림 6.4에 설명 된대로 클릭 이벤트가 발생하지 않는다는 것 입니다. 정확히 "내용 변경"은 브라우저와 버전에 따라 다릅니다. iOS 7.0의 경우 배경색 변경은 콘텐츠 변경이 아닙니다 (또는 더 이상 변경되지 않습니까?).

 

 

qastack.kr/programming/3038898/ipad-iphone-hover-problem-causes-the-user-to-double-click-a-link

 

iPad / iPhone 호버 문제로 인해 사용자가 링크를 두 번 클릭합니다.

 

qastack.kr

humanwhocodes.com/blog/2012/07/05/ios-has-a-hover-problem/

 

iOS has a :hover problem

 

humanwhocodes.com

qastack.kr/programming/3038898/ipad-iphone-hover-problem-causes-the-user-to-double-click-a-link

 

iPad / iPhone 호버 문제로 인해 사용자가 링크를 두 번 클릭합니다.

 

qastack.kr

qastack.kr/programming/3038898/ipad-iphone-hover-problem-causes-the-user-to-double-click-a-link

 

iPad / iPhone 호버 문제로 인해 사용자가 링크를 두 번 클릭합니다.

 

qastack.kr

shylog.com/settings-for-a-more-complete-webview/

 

보다 완벽한 webview를 위한 세팅들 | 수줍은 동그래 블로그

해당 글은 2019년 3월에 작성된 글 입니다. 🙏 보다 완벽한 webview를 위한 세팅들 App에서 webview를 이용해서 앱을 웹으로 대체하는 경우가 꽤 있다. 퍼포먼스 면에서는 아직 웹뷰가 네이티브뷰를 따

shylog.com

 

 

 

////////

 

 

 

기존 모바일에서 확대 축소를 막기 위해선

 

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

코드만 추가해주기만 하면 정상적으로 작동이 됬습니다.

 

IOS 10 이후 새 기능으로 

 

To improve accessibility on websites in Safari, users can now pinch-to-zoom even when a website sets user-scalable=no in the viewport.

가 추가됨과 동시에 user-scalable=no 만으로는 아이폰 사파리에서 확대 축소가 불가능해졌습니다.

 

오늘은  css의 touch-action 으로 모바일 확대 축소 막는 방법을 알아보겠습니다.


touch-action: pan-y;

를 사용하게 되면 세로 터치는 가능하게 되고 전체 확대는 불가능하게 됩니다.

 

 

위의 방법에서 문제점 발견

safari에서는 정상작동안됨 . 여전히 더블터치시 화면확대됨. 

 

qastack.kr/programming/9038625/detect-if-device-is-ios

 

기기가 iOS인지 감지

 

qastack.kr

 

qastack.kr/programming/37808180/disable-viewport-zooming-ios-10-safari

 

뷰포트 확대 / 축소 사용 중지 iOS 10 이상 사파리?

 

qastack.kr

 

반응형

+ Recent posts