그런트 플러그인을 찾고 계십니까? 그런트 조립을 방문해 보세요.
(현재 웹사이트 assemble.io는 그런트 조립을 위한 것입니다. 최신 조립에 대한 문서로 사이트를 업데이트하는 동안 기다려 주셔서 감사합니다.)
(다음 섹션을 클릭하여 확장하세요)
(markdown-toc을 사용하여 동사에 의해 생성된 TOC)
Assemble은 신속한 프로토타이핑, 정적 사이트 생성 등을 위한 명령줄 도구이자 개발자 프레임워크입니다.
Assemble은 170개 이상 국가의 수천 명의 개발자와 팀에서 사용됩니다! 다음은 assemble으로 구축된 사이트의 몇 가지 예입니다.
귀하의 웹 사이트, 블로그 또는 프로젝트가 조립으로 구축되었습니까? 이에 대해 알려주세요!
Assemble은 독립형으로 사용할 수도 있지만 다음 라이브러리와 함께 사용하면 더욱 강력해집니다.
다음은 조립이 제공하는 몇 가지 기능입니다.
npm을 사용하여 프로젝트의 devDependencies
추가합니다.
$ npm install -D assemble
이제 직접( node assemblefile.js
등 사용) 또는 npm
스크립트를 사용하여 어셈블을 실행할 수 있습니다. 예를 들어 package.json에 다음을 추가합니다.
{
"scripts" : {
"build" : " assemble "
}
}
그런 다음 실행
$ npm run build
또한 시스템 경로에 assemble
명령을 추가하여 모든 디렉터리에서 실행할 수 있도록 하는 어셈블의 CLI를 전역적으로 사용할 수도 있습니다.
$ npm install --global assemble
assemble이 전역적으로 설치되더라도 개발 주기 사이에 assemble에서 발생할 수 있는 잠재적인 변경 사항으로부터 프로젝트를 보호하려면 모든 프로젝트에 로컬로 설치하는 것이 좋습니다.
assemble의 CLI를 사용하려면 프로젝트에 assemblefile.js
를 추가해야 합니다. 이를 수행하는 가장 빠른 방법은 다음 명령을 실행하는 것입니다.
$ assemble
현재 프로젝트에 assemblefile.js
없으면 assemble은 추가할지 묻는 메시지를 표시합니다. 예라고 대답하면 assemble이 기본 assembfile.js
생성합니다.
명령줄에서 어셈블을 실행합니다.
$ assemble < tasks > [options]
실행할 하나 이상의 공백으로 구분된 작업을 지정합니다.
예
foo
작업 실행
$ assemble foo
foo
및 bar
작업 실행
$ assemble foo bar
비작업 옵션에는 --
접두사가 붙습니다.
예
다른 디렉토리에서 assemblefile.js를 실행하려면 --cwd
를 설정하십시오.
$ assemble --cwd=docs
로드되는 대로 뷰를 내보내고 stderr
에 기록합니다.
$ assemble --emit=view
더 많은 [명령줄 옵션](#명령줄 옵션) 보기
개체 경로는 명령줄 인수의 키 또는 값 에 대해 점 표기법을 사용하여 지정할 수 있습니다.
또한 assemble은 확장 개체(및 일부 사용자 정의 구문 분석)를 사용하여 명령줄을 통해 중요하지 않은 옵션과 명령을 더 쉽게 전달할 수 있도록 합니다. 따라서 다음 형식이 모두 가능합니다.
예
부울 값:
$ assemble --foo
# { foo: true }
키-값 쌍:
$ assemble --foo=bar
# { foo: 'bar' }
중첩된 부울:
$ assemble --option=foo
# {options: { foo: true }}
중첩된 키-값 쌍:
$ assemble --option=foo:bar
# {options: { foo: 'bar' }}
깊게 중첩된 키-값 쌍:
$ assemble --option=foo.bar.baz:qux
# {options: foo: { bar: { baz: 'qux' }}}}
또는 =
왼쪽에 있습니다.
$ assemble --option.foo.bar.baz=qux
# {options: foo: { bar: { baz: 'qux' }}}}
실행할 assemblefile.js
에 대한 cwd
변경하고 선택적으로 실행할 작업을 지정합니다.
$ assemble < tasks > --cwd [directory]
예
examples/
디렉터리에서 scaffolds
예제를 실행하려면 다음을 입력합니다.
$ assemble --cwd examples/scaffolds
성공하면 명령줄에 다음과 같은 내용이 표시됩니다.
실행할 어셈블의 CLI에 대한 구성 파일 이름을 지정합니다. 기본값은 assemblefile.js
입니다.
예
$ assemble --file assemblefile.dev.js
assemble
앱을 만듭니다. 이는 assemble 모듈이 내보낸 주요 함수입니다.
매개변수
options
{Object} : 선택적으로 사용할 기본 옵션을 전달합니다.예
var assemble = require ( 'assemble' ) ;
var app = assemble ( ) ;
Assemble은 템플릿 및 템플릿 컬렉션 작업을 위해 템플릿 라이브러리의 전체 API를 노출합니다. API는 여기에 설명된 것보다 훨씬 더 광범위합니다. 자세한 설명은 템플릿을 참조하세요.
템플릿 및 보기
다음 문서에서 "템플릿"과 "뷰"라는 용어는 모두 동일한 측면 을 나타냅니다. 그 의미는 다음과 같습니다.
template
: 실제 템플릿 문자열view
: 템플릿 문자열을 포함하는 content
속성이 있는 객체입니다. 뷰는 비닐의 인스턴스이므로 뷰를 "템플릿용 비닐 파일"로 생각할 수 있습니다. 뷰 캐싱을 위한 템플릿 컬렉션을 만듭니다.
app . create ( 'includes' , { viewType : 'partial' } ) ;
옵션
cwd
{String} : glob에서 컬렉션으로 템플릿을 로드할 때 사용할 기본 디렉터리
viewType
: {String|Array} : 컬렉션과 연결할 하나 이상의 뷰 유형
보기 추가
컬렉션에 뷰를 추가합니다.
app . include ( 'foo.md' , { contents : new Buffer ( 'this is contents' ) } ) ;
여러 보기를 추가합니다.
app . includes ( {
path : 'foo.md' , contents : new Buffer ( 'this is contents' ) ,
path : 'bar.md' , contents : new Buffer ( 'this is contents' ) ,
path : 'baz.md' , contents : new Buffer ( 'this is contents' )
} ) ;
// or pass a glob (optionally override `cwd` defined on `.create`)
app . includes ( '*.{md,hbs}' , { cwd : 'templates/includes' } ) ;
뷰 유형은 컬렉션에 정의되어 [렌더링 주기][] 전체에서 컬렉션의 템플릿이 처리되는 방식을 결정합니다.
사용 가능한 유형
Assemble은 세 가지 보기 유형을 지원합니다.
partial
: 이 유형의 보기는 다른 보기에 삽입할 수 있는 "부분 보기"(또는 "부분 보기")로 사용될 수 있습니다. 구성 요소, 문서 조각 또는 재사용 가능한 코드나 콘텐츠의 기타 조각에 유용합니다. 이러한 뷰는 렌더링 엔진에 전달되어 부분으로 사용되거나 부분이 직접 지원되지 않는 경우 컨텍스트의 변수로 사용됩니다.layout
: 뷰가 공통 코드나 콘텐츠로 다른 뷰(다른 레이아웃이나 부분을 포함하여 모든 유형)를 "래핑"할 수 있습니다.renderable
: 최종적으로 웹 사이트 사용자나 방문자에게 표시되는 렌더링된 파일과 일대일 관계를 갖는 뷰입니다. 예: 페이지 또는 블로그 게시물. 다른 보기 유형이 설정되지 않은 경우 renderable
보기 유형이 자동으로 설정됩니다.보기 유형 정의
컬렉션이 생성될 때 보기 유형을 정의할 수 있습니다.
app . create ( 'snippet' , { viewType : 'partial' } ) ;
또는 컬렉션 옵션에서 직접:
app . create ( 'snippet' ) ;
app . snippets . option ( 'viewType' , [ 'partial' ] ) ; // string or array
주어진 ext
사용하여 뷰를 렌더링하기 위한 템플릿 엔진을 등록합니다.
app . engine ( ext , fn ) ;
매개변수
ext
{String} : 엔진으로 렌더링할 파일의 파일 확장자fn
{Function} : 통합 엔진 규칙을 따르고 str
, locals
및 callback
의 세 가지 인수를 사용하는 비동기 함수입니다.예
// this engine is already registered in assemble
app . engine ( 'hbs' , require ( 'engine-handlebars' ) ) ;
// create a custom engine
app . engine ( 'txt' , function ( str , locals , cb ) {
// render `str` with `locals`
cb ( null , str ) ;
} ) ;
options.engine
에 값을 설정하여 모든 파일 확장자에 대해 동일한 엔진을 사용하도록 어셈블러에 지시할 수 있습니다.
예
// use engine `hbs` for rendering all files
app . option ( 'engine' , 'hbs' ) ;
또는 .renderFile을 사용하는 경우 엔진 이름을 전달하여 특정 엔진을 강제로 사용할 수 있습니다.
예
hbs
엔진을 사용하여 모든 템플릿을 렌더링합니다.
app . src ( 'templates/*.*' )
. pipe ( app . renderFile ( 'hbs' ) )
주어진 locals
및 callback
사용하여 뷰를 렌더링합니다.
app . render ( view , { title : 'Foo' } , function ( err , view ) {
// `view` is an object with a rendered `content` property
} ) ;
매개변수
view
{Object|String} : 렌더링할 뷰locals
{Object} : view
에서 템플릿을 렌더링하기 위해 템플릿 엔진에 전달할 로컬callback
{함수}Assemble은 파일 시스템 작업을 위해 다음과 같은 하위 수준 방법을 제공합니다.
Assemble은 비닐-fs에 대한 최고 수준의 지원을 제공하므로 어셈블 파이프라인에서 모든 gulp 플러그인을 사용할 수 있습니다.
비닐 스트림을 만듭니다. 읽을 소스 파일에 대한 glob 패턴이나 파일 경로를 사용합니다.
매개변수
glob
{String|Array} : 소스 파일에 대한 Glob 패턴 또는 파일 경로입니다.options
{Object} : 컨텍스트에 병합하거나 src
플러그인에 전달할 옵션 또는 로컬예
app . src ( 'src/*.hbs' ) ;
// define `src` options
app . src ( 'src/*.hbs' , { layout : 'default' } ) ;
처리된 파일의 대상을 지정합니다.
매개변수
dest
{String|Function} : 파일 경로 또는 이름 바꾸기 기능입니다.options
{Object} : dest
플러그인에 전달할 옵션 및 로컬예
app . dest ( 'dist/' ) ;
주어진 glob patterns
가진 파일을 지정된 dest
에 복사합니다.
매개변수
patterns
{String|Array} : 복사할 파일의 Glob 패턴입니다.dest
{String|Function} : 대상 디렉터리.returns
. 필요한 경우 처리를 계속하려면 스트림입니다.예
app . task ( 'assets' , function ( ) {
// return, to let assemble know when the task has completed
return app . copy ( 'assets/**' , 'dist/' ) ;
} ) ;
스트림을 통해 푸시되는 대로 파일을 렌더링합니다.
app . src ( '*.hbs' )
. pipe ( app . renderfile ( ) )
. pipe ( app . dest ( 'foo' ) ) ;
파일 렌더링에 특정 엔진을 사용하도록 강제합니다.
app . engine ( 'txt' , function ( str , locals , cb ) {
cb ( null , str ) ;
} ) ;
app . src ( '*.hbs' )
. pipe ( app . renderfile ( 'txt' ) ) //<= use engine `txt`
. pipe ( app . dest ( 'foo' ) ) ;
Assemble에는 작업을 실행하고 워크플로를 제어하기 위한 다음과 같은 방법이 있습니다.
작업이 호출될 때 실행할 작업을 정의합니다.
매개변수
name
{String} : 작업 이름fn
{Function} : 태스크 실행 시 호출되는 함수입니다.예
app . task ( 'default' , function ( ) {
app . src ( 'templates/*.hbs' )
. pipe ( app . dest ( 'site/' ) ) ;
} ) ;
하나 이상의 작업을 실행합니다.
매개변수
tasks
{Array|String} : 작업 이름 또는 작업 이름 배열입니다.cb
{Function} : err
노출하는 콜백 함수예
app . build ( [ 'foo' , 'bar' ] , function ( err ) {
if ( err ) throw err ;
console . log ( 'done!' ) ;
} ) ;
파일 감시, 감시된 파일이 변경되면 하나 이상의 작업을 실행합니다.
매개변수
glob
{String|Array} : 파일 경로 또는 glob 패턴.tasks
{Array} : 감시할 작업입니다.예
app . task ( 'watch' , function ( ) {
app . watch ( 'docs/*.md' , [ 'docs' ] ) ;
} ) ;
기본 기반으로 구축된 모든 애플리케이션의 플러그인은 Assemble에서 작동해야 하며 assemblefile.js
에서 사용할 수 있습니다.
baseplugin
키워드를 사용하여 npm에서 기본 플러그인을 찾습니다.assembleplugin
키워드를 사용하여 npm에서 assemble 플러그인을 찾습니다.generateplugin
키워드를 사용하여 npm에서 생성 플러그인을 찾습니다.templatesplugin
키워드를 사용하여 npm에서 템플릿 플러그인을 찾습니다.updateplugin
키워드를 사용하여 npm에서 업데이트 플러그인을 찾습니다.verbplugin
키워드를 사용하여 npm에서 동사 플러그인을 찾습니다.플러그인 사용, 작성 및 게시 방법을 알아보려면 플러그인 문서 가이드를 방문하세요.
연락하세요!
질문이나 제안 사항이 있거나 조립에 대해 논의하고 싶으십니까? Gitter에서 대화에 참여하거나 Twitter에서 소리를 지르세요. 조립팀과 커뮤니티는 언제나 기꺼이 도와드리겠습니다!
웹사이트가 오래되어 리팩터링 중입니다!
Assemble의 웹사이트인 assemble.io에는 gulp-assemble과 관련된 정보만 있습니다. 우리는 최신 릴리스에 대한 정보로 사이트를 업데이트하기 위해 열심히 노력하고 있습니다.
그 동안에는 WIP 문서가 유용할 수 있습니다. 단위 테스트도 좋은 예입니다!
조립 웹사이트가 최신 상태인가요?
아니요, 위에서 언급했듯이 완전히 구식입니다. grunt-assemble을 사용하는 경우 assemble.io의 일부 문서가 여전히 유용할 수 있습니다. assemble v0.6.0 이상을 사용한다면 거의 모든 면에서 문서가 잘못되었을 가능성이 높습니다.
우리는 리팩토링 작업을 (매일) 적극적으로 진행하고 있으며 이는 매우 높은 우선순위입니다.
어셈블 코어와 어셈블의 차이점은 무엇입니까?
Assemble은 CLI, 몇 가지 내장 뷰 컬렉션( pages
, layouts
, partials
, 머리말 구문 분석을 위한 미들웨어 및 많은 사용자가 기대하는 몇 가지 기타 기본 기본값을 추가합니다. 다른 기본값을 선호한다면 assemble-core가 좋은 출발점입니다.
템플릿, 렌더링, 엔진, 도우미, 컬렉션 등을 처리하는 것을 원하지만 작업을 실행하거나 파일 시스템으로 작업할 필요가 없다면 어셈블 코어 대신 템플릿 사용을 고려하십시오.
저는 gulp를 사용하는데 왜 gulp로 assemble을 실행하는 대신 assemble을 직접 사용하는 것이 권장되나요?
assemble을 사용하여 gulp 플러그인을 실행할 수 있지만 항상 반대 방향으로 작동하는 것은 아닙니다. 이는 빌드 시스템으로서 assemble이 미들웨어 처리와 같이 gulp가 수행하지 않는 작업을 수행하기 때문입니다.
예를 들어 assemble의 .src
및 .dest
메서드에는 .onStream
, .preWrite
및 .postWrite
미들웨어 핸들러가 내장되어 있습니다. 여전히 gulp를 사용하고 싶고 빌드 주기에 이러한 핸들러가 필요한 미들웨어가 포함되어 있는 경우 gulp와 함께 assemble-handle 플러그인을 사용하여 핸들러가 필요에 따라 계속 호출되는지 확인할 수 있습니다.
말하자면, gulp가 작동하도록 하는 방법을 찾을 수 있지만 어셈블링이 이미 수행하는 작업을 수행하기 위해 프로젝트에 추가 종속성을 추가하는 것뿐입니다.
gulp와 assemble은 어떤 관계인가요?
자세한 내용은 꿀꺽꿀꺽 FAQ를 읽어보세요.
Assemble의 개발에 대한 업데이트를 받고 프로젝트 관리자 및 커뮤니티 구성원과 채팅하세요.
트위터에서 @assemblejs를 팔로우하세요.
Assemble이 마음에 들고 이에 대해 트윗하고 싶다면 언제든지 @assemblejs
언급하거나 #assemble
해시태그를 사용하세요.
공식 Assemble 블로그를 읽고 구독하세요.
공식 Slack 룸에 참여하세요.
Gitter 대화에 참여하세요
귀하의 조립 프로젝트에 대해 알려주십시오.
Assemble에 출연하여 사랑을 보여주세요!
StackOverflow에서 구현 도움말 얻기(질문이 있을 경우 assemble assemble
태그를 사용하세요)
Gitter 토론 Gitter에서 우리와 함께 모여보세요
검색 가능성을 최대화하려면 플러그인 개발자는 npm 또는 유사한 전달 메커니즘을 통해 배포할 때 Assemble의 기능을 수정하거나 추가하는 패키지에 assembleplugin
키워드를 사용해야 합니다.
기여
이 프로젝트에 기여하는 방법에 대해 자세히 알아보려면 기여 가이드를 읽어보세요.
@doowb 및 @jonschlinkert의 다음 프로젝트에도 관심이 있으실 수도 있습니다.
어셈블링이 필요한 작업을 수행하지 못하는 경우 GitHub에서 친구들이 만든 관심을 가질 만한 다른 훌륭한 오픈 소스 프로젝트가 있습니다(알파벳순).
정적 사이트 생성기
블로그 프레임워크
변경 로그 항목은 다음 레이블을 사용하여 분류됩니다 (keep-a-changelog에서 ):
added
: 새로운 기능을 위해changed
: 기존 기능의 변경 사항deprecated
: 향후 릴리스에서 제거된 일단 안정적이었던 기능removed
: 이 릴리스에서 제거된 더 이상 사용되지 않는 기능용fixed
: 버그 수정을 위해이 변경 로그에 사용된 맞춤 라벨:
dependencies
: 종속성을 범프합니다.housekeeping
: 코드 재구성, 사소한 편집 또는 다른 범주에 맞지 않는 기타 변경 사항. 추가됨
결정된
isbinaryfile
존재하지 않는 파일에서 읽으려고 시도하는 버그를 수정하는 is-binary-buffer를 사용하도록 종속성을 업데이트했습니다. 의존성
app
에서 생성할 때 view
.toStream()
으로 장식되도록 보장하는 어셈블리 스트림에 대한 업데이트를 가져오기 위해 어셈블리 코어를 범프합니다. 의존성
결정된
view.path
변경된 후 어떤 경우에는 view.stat
이 null이 되는 0.20.0의 회귀view.base
항상 올바른 것은 아닙니다. 의존성
dest
처리 개선 사항을 활용하기 위해 어셈블 코어를 v0.29.0으로 범프합니다. 의존성
list
에서 사용할 수 있는 새로운 방법을 활용하기 위해 assemble-core를 v0.28.0으로 변경합니다. 종속성
종속성
.log.info()
, .log.success()
등과 같은 추가 메서드도 노출하는 .log()
메서드support/docs
로 이동되었으므로 마크다운 문서를 docs
디렉터리에 구축할 수 있습니다..data
메소드에서 renameKey
옵션을 제거하는 최신 버전의 템플릿과 기본 데이터를 얻기 위해 assemble-core를 v0.24.0으로 범프합니다. 대신 namespace
옵션을 사용하세요. 조회 방법 .find
및 getView
에 대한 수정 및 개선 사항을 활용하기 위해 assemble-core를 v0.22.0으로 범프합니다. API가 변경되지 않았습니다. 회귀가 발생하면 알려주시기 바랍니다.
List
버그 수정app.getView()
및 app.find()
queue
속성에 대한 지원이 제거되었습니다. 자세한 내용은 Assemble-Core를 참조하세요.file.base
에 glob 부모가 사용되지 않아 경우에 따라 dest 디렉터리가 glob 부모 대신 cwd에 상대적이 되는 버그를 수정합니다.renameKey
항상 사용되지 않는 버그로 인해 발생하는 assemble-loader의 수정 사항이 포함되어 있습니다.debug
메서드 및 관련 코드가 제거되었습니다.isRegistered is not a function
등의 오류를 방지하려면 node_modules
완전히 제거하고 모든 종속성을 다시 설치해야 합니다. .watch
메서드를 제거하는 v0.11.0으로 작곡가를 업데이트합니다.(helper-changelog에 의해 생성된 변경 로그)
끌어오기 요청과 별표는 언제나 환영합니다. 버그 및 기능 요청이 있는 경우 이슈를 생성해 주세요.
이슈 개시, 끌어오기 요청 및 코딩 표준에 대한 조언은 기여 가이드를 읽어보세요.
Assemble이 필요한 작업을 수행하지 못하는 경우 알려주시기 바랍니다.
커밋 | 기부자 |
---|---|
1497 | 존슐린커트 |
842 | 두브 |
11 | 앤더스D존슨 |
7 | 아르키마아기 |
7 | 스테판발터 |
4 | avr |
4 | 벤드러커 |
2 | thegreatsunra |
2 | 라우베르다니엘 |
2 | 오노쿠무스 |
2 | RobLoach |
2 | 스티븐블랙 |
2 | xzyfer |
2 | 아인 |
1 | 아산 |
1 | 바우에르카 |
1 | 케이시g1204 |
1 | 히작 |
1 | 무타리 |
1 | 크리티컬 매쉬 |
1 | 준시 |
1 | 조단토마 |
1 | 프레이어 |
1 | 수호자 |
1 | pburtchaell |
1 | 스모리슨 |
1 | 온클레톰 |
1 | 타일러호워스 |
1 | 클로키 |
존 슐린커트
브라이언 우드워드
저작권 © 2017, 존 Schlinkert. MIT
이 파일은 2017년 12월 27일 verb-generate-readme, v0.6.0에 의해 생성되었습니다.