- sudo apt update
- sudo apt install apt-transport-https ca-certificates curl software-properties-common
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/ubuntu bionic stable"
- sudo apt update
- apt-cache policy docker-ce
- sudo apt install docker-ce
2019년 3월 10일 일요일
ubuntu 18.04 docker on ARM
2018년 7월 2일 월요일
cordova 6.3 + crosswalk
cordova release note 를 참고하니 6.4 버전 업데이트 당시 crosswalk plugin 을 사용하려면 cordova 6.3 버전 사용하는것을 추천한다고 되어있는듯 하다.
설치 방법
1. platform 설치
cordova platform add android@6.3
2. crosswalk 설치
cordova plugin add cordova-plugin-crosswalk-webview
3. crosswalk 설치
platforms/android/build.gradle 에 아래 내용 추가
configurations.all {
정확한 오류내용은 2번가지만 하고 빌드 해보시길..
참고
https://stackoverflow.com/questions/50727543/cordova-8-0-0-build-failed-after-add-crosswalk-plugin
기타
위의 3번 방법 말고도 cordova-android-support-gradle-release 라는 plugin 을 설치해서 해결한느 방법도 있는것 같다. 예전에 cordova android 7.0 대에서 테스트를 했었던것 같은데
우선 7.0 버전대는 다른 플러그인들이 아직 업데이트를 다 못한듯 하다. 예를 들어 android 7.0에 plugin 을 설치하면 정확한 android platform 패스를 찾아가지 못한다. 구조가 조금 바뀐듯.
설치 방법
1. platform 설치
cordova platform add android@6.3
2. crosswalk 설치
cordova plugin add cordova-plugin-crosswalk-webview
3. crosswalk 설치
platforms/android/build.gradle 에 아래 내용 추가
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:24.0.0'
}
}
이 내용을 추가하지 않으면 build 도중 android 밑에 뭔가를 찾다가 오류가 난다.정확한 오류내용은 2번가지만 하고 빌드 해보시길..
참고
https://stackoverflow.com/questions/50727543/cordova-8-0-0-build-failed-after-add-crosswalk-plugin
기타
위의 3번 방법 말고도 cordova-android-support-gradle-release 라는 plugin 을 설치해서 해결한느 방법도 있는것 같다. 예전에 cordova android 7.0 대에서 테스트를 했었던것 같은데
우선 7.0 버전대는 다른 플러그인들이 아직 업데이트를 다 못한듯 하다. 예를 들어 android 7.0에 plugin 을 설치하면 정확한 android platform 패스를 찾아가지 못한다. 구조가 조금 바뀐듯.
2018년 6월 19일 화요일
웹서버 리소스 접근제어
출처 : http://civan.tistory.com/213
추가된 사용자에 대한 암호를 만듭니다. 앞에서와 동일하지만 새로 파일을 생성하는 것이 아닌 기존파일(passwords)에 사용자를 추가합니다. 새로이 암호파일을 만들고자 하는 경우에는 -c옵션을 사용합니다.
이제 GroupA 그룹에 속하면서 passwords 파일에 항목이 있는 사용자가 올바른 암호를 입력하면 접근을 허용한다.
<Directory /msie_html/>
order deny,allow
deny from all
allow from env=InternetExplorer
</Directory>
이 예제는, 브라우저가 인터넷 익스플로러인 경우에는 ‘InternetExplorer’ 환경변수를 설정하고 deny 지시어로 모든 접근을 거부하고, allow 지시어를 통해 ‘InternetExplorer’ 로 환경 설정된 브라우저의 접속만 허용하고 있다. SetEnvif 를 이용하여 또 다른 예를 들어 보이겠다.
<Directory /apache_users_only/>
order deny,allow
deny from all
allow from env=referral_ok
</Directory>
앞서 배운 내용들을 기반으로 위 예제는 “어떠한 역할을 하는 것으로 추측되어 지는가?” 잠깐 생각에 잠기어 보기 바란다.
출처: http://civan.tistory.com/213 [행복만땅 개발자]
Apache 접근 제어 (Access Control)
웹서버를 운영하다보면 “외부의 접근은 허용하지 않으며, 특정 지역에서만 접근을 원하고 싶은데… 쉬운 방법은 없을까? “ 하는 고민을 하게된다. 일반적인 웹사이트야 기본 설정대로 사용하면 되겠지만 소수의 사람들만 사용하기 위한 정보 등이라면 어플리케이션 레벨의 ACL이 아니어도 서버 설정파일(httpd.conf) 이나 디렉토리별 설정파일(.htaccess) 을 통해 간단하게 설정할 수 있다..
htaccess 파일을 사용하는 경우에는 이 파일에 있는 인증 지시어를 허용하도록 서버를 설정해야 한다. 이를 위해 디렉토리별 설정파일에 어떤 지시어를 사용할 수 있는지를 결정하는 AllowOverride 지시어를 사용한다.서버 디렉토리를 암호로 보호하기
서버의 디렉토리를 암호로 보호하기 위해서 먼저 암호파일을 만들어야 한다.
이 파일은 웹에서 접근할 수 없는 곳에 있어야 하는데 그 이유는 다른사람이 암호파일을 다운로드하지 못하게하기 위해서다.
예를 들어, 문서들이
/usr/local/apache/htdocs에 있다면 암호파일(들)은 /usr/local/apache/passwd에 둔다.
아파치에 포함된 htpasswd 도구를 사용하여 다음과 같이 암호파일을 만들 수 있다. (아파치설치디렉토리/
bin/htpasswd)
#
htpasswd -c /usr/local/apache/passwd/passwords civan htpasswd는 암호를 물어보고, 확인을 위해 암호를 다시New password: mypassword
Re-type new password: mypassword
Adding password for user civan
암호를 물어보고 확인을 위해 암호를 다시 입력하라고 요청한다.
다음으로 서버가 암호를 요청하도록 설정하고, 서버에게 어떤 사용자의 접근을 허용할지 알려줘야 한다.
httpd.conf를 편집하거나 .htaccess 파일을 사용하여 설정한다.
예를 들어,
/usr/local/apache/htdocs/secret 디렉토리를 보호하려면, 아래 지시어를 /usr/local/apache/htdocs/secret/.htaccess 파일이나 httpd.conf의 <Directory /usr/local/apache/htdocs/secret> 섹션에 적어야 한다.
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwds
Require user civan
AuthType: 사용자 인증 방법 선택.
기본값은Basic (mod_auth_basic이 구현) 을 사용하고 있지만 Basic 인증은 브라우저가 서버로 암호를 암호화하지 않고 전송하기 때문에 기밀 자료를 보호하기 위해서는 다른 방법을 선택.
예를 들면 아파치의 경우AuthType Digest(mod_auth_digest가 구현) 인증 방법도 지원하고 있으며 매우 안전하다.
AuthName: 영역(realm)을 지정.
일단 클라이언트가"Restricted Files"영역에 인증이 성공하였다면, 클라이언트는 자동으로 같은 서버내"Restricted Files"영역으로 표시된 구역에 대해서 동일한 암호를 시도한다.
그래서 여러 제한 구역이 같은 영역을 공유하면 사용자가 여러번 암호를 입력하지 않아도 된다.
물론 보안상 이유로 클라이언트는 서버의 호스트명이 다르면 항상 새로 암호를 물어보게 된다.
AuthUserFile:htpasswd로 만든 암호파일의 경로를 설정.
사용자가 많은 경우 요청마다 매번 사용자를 인증하기위해 일반 문서파일을 검색하는 것은 시간이 상당히 많이 걸릴 수 있기 때문에 AuthDBMUserFile 지시어를 이용하여 데이타베이스 파일에 사용자 정보를 저장할 수도 있다.
Require: 서버의 특정 영역에 접근할 수 있는 사용자를 지정하여 권한부여
그룹권한
앞에서는 디렉토리에 한사람(사용자명이 civan인)에 대한 접근 권한을 부여했다면 이번에는 다수의 사용자들을 그룹으로 묶어 부여하는 방법을 설명합니다.
먼저 그룹명과 해당 그룹에 어떤 사용자들이 있는지 알려주는 그룹파일이 필요하다.
#vi /usr/local/apache/passwd/groups
groupA : civan naver google
위의 예는 그룹명이 groupA 이며 civan, naver, google이라는 사용자가 들어있다는 그룹파일이다.
#htpasswd /usr/local/apache/passwd/passwords naver
추가된 사용자에 대한 암호를 만듭니다. 앞에서와 동일하지만 새로 파일을 생성하는 것이 아닌 기존파일(passwords)에 사용자를 추가합니다. 새로이 암호파일을 만들고자 하는 경우에는 -c옵션을 사용합니다.
#vi .hthtaccess
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwdsAuthGroupFile /usr/local/apache/passwd/groupsRequire group GroupA이제 GroupA 그룹에 속하면서 passwords 파일에 항목이 있는 사용자가 올바른 암호를 입력하면 접근을 허용한다.
그룹파일을 만들지 않고도 다수의 사용자에 대한 접근제어를 할 수 있는방법이 있다.
Require valid-user
Require user civan 대신 이 지시어를 사용하면 암호파일에 있는 누구라도 올바른 암호를 입력하기만 하면 접근을 허용하게 된다. 그룹별로 다른 암호파일을 사용하여 그룹과 비슷한 효과를 얻을 수 있으며 이 경우 아파치가 파일 두개(암호파일,그룹파일)가 아닌 한개(암호파일)만을 검사하면 된다는 점이 장점이지만 여러 암호파일을 관리해야 한다는 점과 AuthUserFile 지시어에 정확한 암호파일을 지정해야 한다는 점이 단점이다.
문서를 요청한 호스트명 또는 호스트 주소로 접근 제어하기
사용자명과 암호를 사용한 인증뿐 아니라 특정한 접속 장소(IP 또는 도메인)에 따라 사용자의 접근권한을 ‘제어하고자 하는 경우도 있는데 이 경우 Allow 와 Deny 그리고 Order 의 3가지의 지시어를 제공한다. Deny와 Allow 지시어는 이름에서도 암시하는 거와 같이 클라이언트의 주소 또는 호스트명를 기반으로 자원으로의 접근을 거부할 것인지 또는 허용할 지의 여부를 결정하는 지시어로, 사용되어 지는 문법은 다음과 같이 간단하다.
Allow from host 또는 Deny from host
이 지시어에서의 host 인자로 사용할 수 있는 것은 매우 유동적이며 그 인자로는 다음과 같다.
- All : 모든 호스트의 접근을 허용한다. 예) Allow from all
- 도메인명: 호스트의 이름과 매칭되거나, 끝나는 위치의 문자열과 같은 접근을 허용 예) Allow from host.example.com
- 전체 IP 주소 : IP 주소의 접근을 허용한다. 예) Allow from 205.252.46.165
- 부분적인 IP 주소 : 서브넷 제한과 같이 IP 주소의 1 에서 3 바이트까지의 접근을 의미한다. 예) Allow from 10 173.20 192.168.2
- 네트워크/넷마스크 (아파치 1.3 이상에서 가능) : 네트웍 a.b.c.d 그리고 넷마스크 w.x.y.z 와 같은 식으로 구성된다.
예) Allow from 10.1.0.0/255.255.0.0 - CIDR 을 이용한 표기
넷마스크가 1비트로 구성된 것을 제외하고는 위 경우와 유사하다. 예) 10.1.0.0/16 은 10.1.0.0/255.255.0.0 과 같다. - IPv6와 서브넷 명시 - 예) Allow from 2001:db8:a00:20ff:fea7:ccea/10
<Directory /usr/local/apache/htdocs>
Order deny,allow
Deny from all
Allow from localhost 192.168.23.0/255.255.255.0</Directory>
만약 Allow, Deny 가 각각 따로 쓰인다면 지시어를 함께 사용하여 자원의 접근을 통제시 충돌이 일어날 수 있다.
아파치에서는 바로 이러한 충돌을 ‘order’ 지시어를 통하여 해결하고 있다. ‘Order’ 지시어는 Allow 와 Deny 지시어가 함께 쓰여졌을 때 어느 지시어가 우선순위를 가지고 먼저 처리가 되어져야 할지를 결정하며, 다음의 두 가지 값 중에 하나가 사용되어 질 수가 있다.
- Order deny,allow : Deny 지시어를 먼저 처리한 후 그 다음 Allow 지시어로 이어진다
- Order allow,deny : Allow 지시어를 먼저 처리한 후 그 다음 Deny 지시어로 이어진다.
둘 중에 어느 것을 사용하느냐 하는 것은 여러분이 제한하고자 하는 사람이 적거나 또는 반대로 대부분의 사람을 포함하는 등의 선택에 따라 달라진다. 예를 들어, 만약 모든 사람들의 접근을 허용하면 반면, 특정 도메인에서 불쾌한 메시지를 게시판에 올리는 사람이 있다면 아래와 같은 설정이 가능하다.
Order Allow , Deny
Allow from all
Deny from evil.victim.com
이와 달리, 회사에서의 접속만을 허용하고 다른 외부의 접근은 모두 허용하지 않을 때는
Order Deny, Allow
Deny from all
Allow from .company.comHTTP 헤더 기반의 고급 접근 제어
앞서 allow 와 deny 지시어는 호스트 또는 IP 주소를 통해서만 제어가 가능했지만, mod_setenvif 의 모듈을 이용하여 클라이언트가 요청한 HTTP 요청의 헤더정보를 환경변수로 설정하여 HTTP 헤더 기반의 고급 접근 제어도 가능하다.
mod_setenvif 는 두개의 지시어를 제공하는데 , BrowserMatch(BrowserMatchNoCase) 와 SetEnvif(SetEnvifNoCase) 이다. 각 지시어의 문법은 아래와 같다 :
mod_setenvif 는 두개의 지시어를 제공하는데 , BrowserMatch(BrowserMatchNoCase) 와 SetEnvif(SetEnvifNoCase) 이다. 각 지시어의 문법은 아래와 같다 :
- BrowserMatch regex variable[=value]
- SetEnvif attribute regex variable[=value]
정규 표현식에 따라 attribute 의 값과 일치가 되면 환경변수로 variable 을 설정하게 된다. 우선, BrowserMatch 를 이용하여 브라우저의 종류에 따라 접근제어를 해 보도록 하자.
BrowserMatch ^MSIE InternetExplorer <Directory /msie_html/>
order deny,allow
deny from all
allow from env=InternetExplorer
</Directory>
이 예제는, 브라우저가 인터넷 익스플로러인 경우에는 ‘InternetExplorer’ 환경변수를 설정하고 deny 지시어로 모든 접근을 거부하고, allow 지시어를 통해 ‘InternetExplorer’ 로 환경 설정된 브라우저의 접속만 허용하고 있다. SetEnvif 를 이용하여 또 다른 예를 들어 보이겠다.
SetEnvIf Referer ^http://www.test.com/links_page.html referral_ok _ok<Directory /apache_users_only/>
order deny,allow
deny from all
allow from env=referral_ok
</Directory>
앞서 배운 내용들을 기반으로 위 예제는 “어떠한 역할을 하는 것으로 추측되어 지는가?” 잠깐 생각에 잠기어 보기 바란다.
"http://www.test.com/links_page.html" 을 통해 접근을 하게 되면 referral_ok 의 이름으로 환경변수가 설정되어 지고 “apache_users_only” 디렉토리에는 이 링크를 통한 접속만을 허용하게 된다.
이와 같이 여러분의 상상력을 동원하여 다양한 접근방법을 수행할 수 있다.
attribute 에 해당하는 HTTP 요청헤더의 환경변수는 다음을 포함하여 RFC2616(http://www.rfc-editor.org/rfc/rfc2616.txt) 에서 더 많은 정보를 확인하여 볼 수가 있다.
- CONTENT_TYPE : 내용물의 마임타입
- DATE_GMT : 현재 GMT(greenwich, UK) 시간을 표시
- DATE_LOCAL : 현재의 시간과/날짜
- DOCUMENT_NAME : 요청한 문서의 이름
- DOCUMENT_URI : 문서의 URL
- LAST_MODIFIED : 문서가 마지막으로 수정된 날짜
- HTTP_REFERER : 클라이언트가 어디를 참조하여 들어왔는지를 나타냄
- REMOTE_ADDR : 클라이언트의 IP 주소
- REMOTE_HOST : 클라이언트의 도메인 이름
- REQUEST_METHOD : HTTP 요청 방법: GET 또는 POST
- SERVER_PORT : httpd 에 의해 사용되어 지고 있는 포트번호 (일반적으로 80번)
- SERVER_PROTOCOL : http 의 버전
- SERVER_SOFTWARE : 웹 서버의 소프트웨어 정보
“WebZip” 과 같은 많은 프로그램들이 홈페이지에 접속하여 내용을 자동으로 클라이언트의 시스템에 저장해 주는 기능을 가지고 있다. 이러한 류의 접근을 통제하기위해서는 어떠한 방법이 가능할까 ?
BrowserMatch "WebZIP" web_spider
BrowserMatch "Teleport" web_spider
BrowserMatch "Teleport Pro/1.29" web_spider
BrowserMatch "NamoWebEditor" web_spider
BrowserMatch "WebSymmetrix" web_spider
<Directory /usr/local/apache/htdocs>
Order allow,deny
Allow from all
Deny from env = web_spider
</Directory>
BrowserMatch "Teleport" web_spider
BrowserMatch "Teleport Pro/1.29" web_spider
BrowserMatch "NamoWebEditor" web_spider
BrowserMatch "WebSymmetrix" web_spider
<Directory /usr/local/apache/htdocs>
Order allow,deny
Allow from all
Deny from env = web_spider
</Directory>
출처: http://civan.tistory.com/213 [행복만땅 개발자]
2018년 4월 27일 금요일
cordova build 중 plugin 설치 후 build not found 에러 날 경우
1. cordova : 7.0.0
2. plugin : cordova-plugin-crosswalk-webview 2.4.0 "Crosswalk WebView Engine"
3. 해결법 :
- cordova plugin add cordova-android-support-gradle-release
- config.xml
<plugin name="cordova-android-support-gradle-release" spec="1.3.0">
<variable name="ANDROID_SUPPORT_VERSION" value="27.+" /> </plugin>
4. 출처 :
https://stackoverflow.com/questions/49208772/error-resource-androidattr-fontvariationsettings-not-found
5. 에러내용 (path 변경 및 일부내용) :
C:\xxx\.gradle\caches\transforms-1\files-1.1\xwalk_core_library-23.53.589.4.aar\b3314598d439688991186787777ac81f\res\values\dimens_03.xml:14:5-51: AAPT: error: resource android:attr/fontVariationSettings not found.
C:\xxx\.gradle\caches\transforms-1\files-1.1\xwalk_core_library-23.53.589.4.aar\b3314598d439688991186787777ac81f\res\values\dimens_03.xml:14:5-51: AAPT: error: resource android:attr/ttcIndex not found.
C:\xxx\platforms\android\app\build\intermediates\incremental\mergeArm64DebugResources\merged.dir\values\values.xml:99: error: resource android:attr/fontVariationSettings not found.
C:\xxx\platforms\android\app\build\intermediates\incremental\mergeArm64DebugResources\merged.dir\values\values.xml:99: error: resource android:attr/ttcIndex not found.
error: failed linking references.
Failed to execute aapt
com.android.ide.common.process.ProcessException: Failed to execute aapt
...
2. plugin : cordova-plugin-crosswalk-webview 2.4.0 "Crosswalk WebView Engine"
3. 해결법 :
- cordova plugin add cordova-android-support-gradle-release
- config.xml
<plugin name="cordova-android-support-gradle-release" spec="1.3.0">
<variable name="ANDROID_SUPPORT_VERSION" value="27.+" /> </plugin>
4. 출처 :
https://stackoverflow.com/questions/49208772/error-resource-androidattr-fontvariationsettings-not-found
5. 에러내용 (path 변경 및 일부내용) :
C:\xxx\.gradle\caches\transforms-1\files-1.1\xwalk_core_library-23.53.589.4.aar\b3314598d439688991186787777ac81f\res\values\dimens_03.xml:14:5-51: AAPT: error: resource android:attr/fontVariationSettings not found.
C:\xxx\.gradle\caches\transforms-1\files-1.1\xwalk_core_library-23.53.589.4.aar\b3314598d439688991186787777ac81f\res\values\dimens_03.xml:14:5-51: AAPT: error: resource android:attr/ttcIndex not found.
C:\xxx\platforms\android\app\build\intermediates\incremental\mergeArm64DebugResources\merged.dir\values\values.xml:99: error: resource android:attr/fontVariationSettings not found.
C:\xxx\platforms\android\app\build\intermediates\incremental\mergeArm64DebugResources\merged.dir\values\values.xml:99: error: resource android:attr/ttcIndex not found.
error: failed linking references.
Failed to execute aapt
com.android.ide.common.process.ProcessException: Failed to execute aapt
...
2018년 2월 27일 화요일
eclipse weblogic
- http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574.html 에서 zip 파일의 weblogic 다운로드
- configure.cmd 실행
tip. google 에 'eclipse weblogic 12.1.3 plugin' 과 같이 버전으로 검색하면 oracle 에서 제공하는 plugin 합본 eclipse 있음.
-------------- 2019.05.30 추가 ----------
- 위 주소에서 12.2.1.3 다운로드
- 압축 해제
- 안에 jar 파일 was 폴더 로 이동
- cmd 관리자로 실행
- java -jar fmw_12.2.1.3.0_wls_quick.jar
- wls12213 생김
- wls12213\wlserver\server\bin\setWLSEnv.cmd
- id, pwd 입력하라함. pwd 에 8자 이상 문자+숫자+특수문자 조합 입력
- wls12213 안에 domain 폴더 만듦. mkdir domain
- domain 폴더 내에서 java weblogic.Server 실행
- localhost:7001/console 접속
- 상단 환경설정 -> '자동으로 잠금을 얻고 변경 내용 활성화' 체크 해제 및 저장.
- 좌측 상단 변경센터 -> '구성해제' 클릭
- eclipse market place 에서 weblogic 검색하여 'oracle weblogic server tools' 깔았는데 server 설정하는 중 invalied version 어쩌구 하면서 안됨. 오잉??? description 에는 분명 12.2.1.3 이라고 적혀 있는데 ㅡㅡ
- market place 의 tools repository 주소 보니 12.2.1.3 이 아님. 주소 참조해서 mars 용 때려 맞춤. 찾음. OK ㅋ
- https://download.oracle.com/otn_software/oepe/12.2.1.3/mars/repository/ 에서 tools 깔음..... 겁나 오래 걸림. 취소함. ㅋ
- https://www.oracle.com/technetwork/developer-tools/eclipse/downloads/oepe-12213-3042423.html 에서 걍 eclipse 랑 plugin 합본 받음.
- weblogic home 선택 위치는 wls12213\wlserver
- domain 은 위 9번에서 만든 도메인 위치
2017년 12월 27일 수요일
Node.js Typescript 설치
1. npm install -g typescript
2. tsc --init
tsconfig.json 기본 데이터 파일
{
"compilerOptions": {
/* Basic Options */
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
// "lib": [], /* Specify library files to be included in the compilation: */
// "allowJs": true, /* Allow javascript files to be compiled. */
// "checkJs": true, /* Report errors in .js files. */
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
// "declaration": true, /* Generates corresponding '.d.ts' file. */
// "sourceMap": true, /* Generates corresponding '.map' file. */
// "outFile": "./", /* Concatenate and emit output to single file. */
// "outDir": "./", /* Redirect output structure to the directory. */
// "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
// "removeComments": true, /* Do not emit comments to output. */
// "noEmit": true, /* Do not emit outputs. */
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
/* Strict Type-Checking Options */
"strict": true /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* Enable strict null checks. */
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
// "noUnusedLocals": true, /* Report errors on unused locals. */
// "noUnusedParameters": true, /* Report errors on unused parameters. */
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
/* Module Resolution Options */
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
// "typeRoots": [], /* List of folders to include type definitions from. */
// "types": [], /* Type declaration files to be included in compilation. */
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
/* Source Map Options */
// "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
// "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
/* Experimental Options */
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
}
}
피드 구독하기:
글 (Atom)