React Native 용 OSS 라이센스 표기 생성 도구를 만들었습니다.
6896 단어 reactnativelicense
npm 패키지의 라이센스를 ios, android로 표시하기 위한 파일을 출력하여 이미지와 같은 라이센스 목록을 만들 수 있습니다.
리포지토리는 다음과 같습니다.
htps : // 기주 b. 코 m / k-모모 야스 / 레아 ct- 나치 ゔ ぇ
Typescript로 구현하고 있습니다.
react-native-oss-license 개요
매우 중요하지만 힘든 OSS 라이센스 관리를 지원하는 CLI 도구입니다. React Native의 개발에 이용하고 있는 npm 패키지의 라이센스의 일람을 출력합니다.
react-native-oss-license
는 npm 패키지 라이센스만 지원합니다. iOS·Android의 라이브러리에 대해서는, 각각 라이센스 표기를 자동화하는 툴이 있으므로 그들과 병용을 상정하고 있습니다. npm 패키지에서 출력한 라이센스 목록과 함께 사용하는 도구로 출력한 라이센스 목록을 병합합니다.react-native-oss-license
가 지원하는 것은 npm 패키지의 라이센스 일람을 출력하는 것까지로, 병합 부분은 유저에게 맡겨지고 있어 최종적으로 앱으로 라이센스를 표시하려면 다음과 같은 작업을 하는 것에 됩니다.react-native-oss-license
에서 1. 형식에 맞는 파일을 출력합니다 react-native-oss-license
에서 3. 형식에 맞는 파일을 출력합니다 또, 현재 서포트하고 있는 툴은 LicensePlist , license-tools-plugin , AboutLibraries 의 3개입니다.
각 도구의 입력 및 출력
iOS에서는 LicensePlist을 자주 사용하며, 출력된 plist 파일을 이용하여 설정 앱에 라이센스 목록을 표기할 수 있습니다.
Android에서는 oss-license-plugin 또는 license-tools-plugin , AboutLibraries 에서 앱에 라이센스를 표시하는 Activity, Fragment 또는 정적 파일을 얻을 수 있습니다.
react-native-oss-license에서는 package.json, node_modules 이하의 파일을 입력에, 위의 iOS, Android의 툴에 맞춘 형식의 파일을 출력합니다.
공구당 입출력
도구
플랫폼
입력
출력
LicensePlist
iOS
cocoapods, Carthage, Swift Package Manager 종속성 설명, 라이브러리 파일
plist
AboutLibraries
안드로이드
build.gradle
활동
license-tools-plugin
안드로이드
build.gradle
yml, yml에서 생성되는 html 등
react-native-oss-license
iOS, Android(React Native)
package.json, node_modules 다음 파일
plist, AboutLibraries 용 strings.xml, liense-tools-plugin 용 yml
처리의 흐름은 다음과 같이 되어 있습니다.
1. package.json에서 이용하고 있는 패키지의 정보를 취득
2. node_modules 이하에서 LICENSE 파일 취득
3. iOS, Android의 각 형식에 맞는 파일을 출력
CLI
CLI에는 다음과 같은 옵션이 있습니다.
> cd {project-root}
> react-native-oss-license --help
Usage: react-native-oss-license [options]
Options:
-f, --format <format> require output format. options:[settings-bundle,license-tools-plugin,about-libraries]
--dev include devDependencies (default: false)
--depth <depth> dependencies depth (default: null)
--output-path <outputPath> specify path where output file (default: "default path")
--json output json to stdout (default: false)
--only-direct-dependency output only dependencies you write packages.json. (default: false)
--version show current version
-h, --help output usage information
> react-native-oss-license --format settings-bundle
output settings-bundle format to 'ios/com.k-tomoyasu.react-native-oss-license.Output'
--format
로 서포트하고 있는 형식을 지정 ( settings-bundle
or license-tools-plugin
or about-libraries
) 하는지, --json 옵션을 지정하는 것이 필수가 되어 있습니다.--format
옵션 지정시는 입력한 형식의 파일을 출력해, --json
를 지정했을 때는 표준 출력에 라이센스 정보를 표시합니다. json을 성형하여 독자적인 형식으로 라이센스 표기하는 경우를 상정한 것입니다.결과
settings-bundle(iOS)
about-libraries(Android)
license-tools-plugin(Android)
감사의 말
전 자료 기사 Flutter에서 사용하는 OSS 라이센스 목록을 생성하는 Dart CLI를 만들어 보았습니다. 의 리포지토리 가 매우 도움이 되었습니다. 감사합니다!
Reference
이 문제에 관하여(React Native 용 OSS 라이센스 표기 생성 도구를 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k-tomoyasu/items/8e06eb8a424b7254c63b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)