Grunt 튜 토리 얼 - 전단 자동화
압축, 컴 파일, 단원 테스트, 코드 검사 등 우 리 는 자동화 가 필요 하 며 중복 노동 을 하지 않 고 작업량 을 줄 일 필요 가 없다.왜 그런 트 를 선 택 했 을까요?더 좋 은 선택 이 없 는 것 같 습 니 다.
준비 작업
node. js 설치
Grunt 는 Node. js 를 기반 으로 설치 하기 전에 Node. js 를 설치 해 야 합 니 다.
shell
brew install node
npm 업데이트
shell
sudo npm install npm -g
grunt - cli 설치
grunt - cli 를 설치 하 는 것 은 Grunt 작업 실행 기 Grunt CLI 를 설치 한 것 과 같 지 않 습 니 다. Gruntfile 이 지정 한 Grunt 버 전 을 실행 하 는 것 입 니 다.이렇게 하면 한 대의 컴퓨터 에 여러 버 전의 Grunt 를 동시에 설치 할 수 있다.(모 르 겠 어, 내 가 직접 실전 할 게)
shell
npm install -g grunt-cli
Grunt 필수 파일
파일 을 만 들 려 면 폴 더 를 만들어 야 합 니 다. 저 는
test
폴 더 를 만 들 었 습 니 다. 하나의 표준 grunt
항목 에 두 개의 파일 이 있어 야 합 니 다.package. json: 프로젝트 메타 데 이 터 를 저장 하 는 데 사 용 됩 니 다.Gruntfile. js: 작업 을 설정 하거나 정의 하 며 Grunt 플러그 인 을 불 러 옵 니 다.
test 1 폴 더 에 이 두 파일 을 만 듭 시다.그럼 서류 에는 어떤 내용 이 적 혀 있 습 니까?일단 package. json 이 어떤 내용 을 쓰 는 지 지 켜 보도 록 하 겠 습 니 다.
json
{ "name": "test", "version": "1.0.0" }
운행 하 다.
항목 의 루트 디 렉 터 리 에서 아래 명령 을 실행 합 니 다.
shell
npm install
명령 실행 과정
log
npm WARN package.json [email protected] No description npm WARN package.json [email protected] No repository field. npm WARN package.json [email protected] No README data
설명 정보 가 없고 README 같은 것 이 없다 고 루트 디 렉 터 리 에 README. md 파일 을 추가 합 니 다.
내용 추가
package. json 에 다음 내용 을 추가 한 후
{
"name": "test",
"version": "1.0.0",
"description": " ",
"repository": {
"type": "git",
"url": "https://github.com/JSLite/JSLite.git"
}
}
그리하여 만사 가 다 잘 되 었 다
그런 트 플러그 인 설치
이 항목 에 Grunt 플러그 인 설치
shell
sudo npm install grunt --save-dev
package. json 파일 내용 발견
devDependencies
정보 디 렉 터 리 하나 더 node_modules
폴 더json
{ "name": "test", "version": "1.0.0", "description": " ", "repository": { "type": "git", "url": "https://github.com/JSLite/JSLite.git" }, "devDependencies": { "grunt": "^0.4.5" } }
실행
npm install --save-dev
은 지정 한 모듈 을 설치 할 뿐만 아니 라 devDependencies
영역 에 자동 으로 추가 되 며 버 전 범 위 를 포함한다.grunt-contrib-uglify
플러그 인 용도: 압축 js, css 파일 플러그 인 이름: grunt - contrib - uglify
설치 하 다.
shell
sudo npm install grunt-contrib-uglify --save-dev
설치 에 성공 한 후 package. json 의 파일 내용
devDependencies
에 대한 정보 가 추가 되 었 습 니 다.json
"devDependencies": { "grunt": "^0.4.5", "grunt-contrib-uglify": "^0.8.0" }
사용 방법
위 에서 말 한 Grunt 프로젝트 는 두 개의 필수 파일 중 하나
package.json
와 Gruntfile.js
를 필요 로 합 니 다. 대소 문자 에 주의 하 십시오. Linux 는 대소 문 자 를 구분 하여 만 들 고 Gruntfile.js
다음 과 같은 내용 을 기록 해 야 합 니 다.js
// module.exports = function(grunt) { // , grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), // uglify uglify: { options: { banner: '/*! This is uglify test - ' + ' */', beautify: true,// mangle: false, // compress:true,// 。 }, app_task: { files: { 'build/app.min.js': ['lib/index.js', 'lib/test.js'] } } } }); // grunt grunt.loadNpmTasks('grunt-contrib-uglify'); // grunt grunt grunt.registerTask('default', ['uglify']); };
분석 하 다.
build/app.min.js
파일 생 성 날짜 와 같은 내용 lib
디 렉 터 리 의 js
압축 을 합 쳐 build
디 렉 터 리 에 생 성 app.min.js
명령 아래 명령 을 입력 하 십시오. 자, 제 잘못 은 없습니다.오류 가 있 으 면 오류 로그 가 있 습 니 다. 스스로 분석 하 세 요.
shell
grunt
grunt-contrib-watch
플러그 인 용도: 파일 변 화 를 감시 하고 grunt 를 자동 으로 실행 하 는 watch 플러그 인 이름: grunt - contrib - watch
설치 하 다.
shell
sudo npm install grunt-contrib-watch --save-dev
쓰다
수정
Gruntfile.js
initConfig 에 추 가 됐 습 니 다.js
// watch watch: { another: { files: ['lib/*.js'], tasks: ['uglify'], options: { // Start another live reload server on port 1337 livereload: 1337 } } }
한 줄 추가
js
grunt.loadNpmTasks('grunt-contrib-watch');
배열 에 추가
watch
js
grunt.registerTask('default', ['uglify','watch']);
watch 를 추가 한 후 전체
Gruntfile.js
js
// module.exports = function(grunt) { // , grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), // uglify uglify: { options: { banner: '/*! This is uglify test - ' + ' */' }, app_task: { files: { 'build/app.min.js': ['lib/index.js', 'lib/test.js'] } } }, // watch watch: { another: { files: ['lib/*.js'], tasks: ['uglify'], options: { // Start another live reload server on port 1337 livereload: 1337 } } } }); // grunt grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-watch'); // grunt grunt grunt.registerTask('default', ['uglify','watch']); };
grunt-contrib-watch
설치
stylus
shell
sudo npm install grunt-contrib-watch --save-dev
수정
Gruntfile.js
initConfig
에 추가 되 었 습 니 다.js
stylus:{ build: { options: { linenos: false, compress: false, banner: '\/**
* -
* version
* author
* date
**/
' }, files: [{ 'css/historyDetail.css': 'styl/historyDetail.styl' }] } },
아래 추가
js
grunt.loadNpmTasks('grunt-contrib-stylus');
paths
일부 Stylus
파일 을 자동 으로 @ import 로 도입 합 니 다. 예 를 들 어 일부 Mixin
집합 은 하나의 Stylus 파일 에 두 고 유지 합 니 다. paths 에 쓰 면 각각 Stylus
파일 에서 호출 할 수 있 습 니 다.define
전역 변 수 를 정의 한 다음 에 Stylus
에서 사용 할 수 있 습 니 다. 그러나 저 는 이 설정 을 사용 하 는 것 을 좋아 하지 않 고 전역 변 수 를 단독 Stylus
파일 에 넣 은 다음 에 이 파일 을 paths 의 배열 에 넣 는 것 을 좋아 합 니 다.한 마디 로 CSS 를 직접 생산 하지 않 는 Stylus
코드 를 여러 개 Stylus
파일 로 나 눈 다음 에 모두 paths
에 추가 하면 모든 Stylus
파일 에서 수시로 호출 할 수 있 지만 이러한 Stylus
파일 의 호출 관계 와 사용 우선 순 서 를 주의해 야 한다.compress
및 linenos
두 개의 Boolean 값 으로 압축 처 리 된 CSS 코드 와 CSS 코드 에 주석 을 유지 하 는 지 여 부 를 제어 합 니 다.banner
문자열 입 니 다. CSS 파일 의 맨 앞 에 놓 입 니 다. 보통 주석 을 쓰 는 데 사 용 됩 니 다. 예 를 들 어banner: '\/**
* -
* version
* author
* date
**/
'
firebug
플러그 인 파이 어 스타 일 러 스 for Firebug
를 사용 할 지 여 부 를 제어 합 니 다. 파이 어 폭 스에 서 스타 일 러 스 를 디 버 깅 할 수 있 습 니 다.Stylus
일부 Firebug
의 다른 use
플러그 인 을 도입 할 수 있다.상용 모듈 설정
Stylus
: 파일 삭제.npm > > grunt
: compass 를 사용 하여 sass 파일 을 컴 파일 합 니 다.npm > > grunt-contrib-clean
: 파일 통합.npm > > grunt-contrib-compass
: 파일 복사.npm > > grunt-contrib-concat
: CSS 파일 을 압축 하고 통합 합 니 다.npm > > grunt-contrib-copy
: 이미지 압축 모듈.npm > > grunt-contrib-cssmin
: JavaScript 문법 을 검사 합 니 다.npm > > grunt-contrib-imagemin
: 자 바스 크 립 트 파일 을 압축 하고 통합 합 니 다.npm > > grunt-contrib-jshint
: 파일 의 변동 을 감시 하고 해당 동작 을 합 니 다.npm > > grunt-contrib-uglify
: stylus 에서 styl 출력 css npm > > 작성
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.