Grunt와 함께 최소 안전 각도 코드까지 5 분
Grunt Automate Code Stitching 및 압축과 같은 작업 러너는 개발 중 페이지 속도를 최적화합니다. Grunt 플러그인은 AngularJS 응용 프로그램을 안전하게 압축 할 수 있도록합니다.
기본적으로 AngularJS 응용 프로그램은 압축 할 수 없으며 Array Syntax로 작성해야합니다. uglifyjs가 실행될 때 매개 변수의 이름을 바꾸지 만 배열에 DI 주석이 존재하면 이름이 바뀌지 않아 이름이 바뀌는 매개 변수가 여전히 필요한 종속성에 액세스 할 수 있습니다.
- 각도 응용 압축 문제
-
articlejs 응용 프로그램은 기본적으로 압축성 안전하지 않습니다. 배열 구문으로 작성해야합니다. 배열 구문이 무엇인지 잘 모르겠다면 아마도 그것을 사용하기 위해 코드를 작성했을 것입니다. AngularJS 컨트롤러의 및 매개 변수를 전달하는 두 가지 예를 살펴 보겠습니다. 아래의 첫 번째 예에서, 모듈의 공장 및 컨트롤러는 DI 주석으로 시작하는 어레이로 싸여 있습니다.
위에서 언급 한 바와 같이, 배열 표기법은 DI 주석으로 시작하여 코드 압축을 안전하게 만드는 데 중요한 역할을합니다. uglifyjs가 실행되면 각각
및 $scope
및 $http
및 a
의 매개 변수를 이름을 바꿉니다. 배열로 문자열로 전달 된 di 주석의 존재는 이름이 바뀌지 못하게합니다. 따라서이 이름이 바뀌는 매개 변수는 여전히 필요한 종속성에 액세스 할 수 있습니다. 이러한 주석이 존재하지 않으면 코드가 중단됩니다. 보시다시피, 이런 식으로 수동으로 코드를 작성하는 것은 매우 비효율적입니다. 이를 피하기 위해 이제 AngularJS 응용 프로그램을 Grunt를 사용하여 완전히 최적화 된 방식으로 주석, 스플 라이스 및 압축하는 방법을 보여주고 생산을 준비하는 방법을 보여 드리겠습니다. b
npm init
var form = angular.module('ControllerOne', []) form.factory('Users', ['$http', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }]); form.controller('InputController', ['$scope', '$http', 'Users', function($scope, $http, Users) { formData = {}; $scope.createUser = function () { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function (data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; }]);
<-> ng-notate를 grunt없이 사용할 수 있지만, 매끄러운 그 런트가 코드를 주석, 접합 및 압축하는 과정을 어떻게 만드는지 곧 알게 될 것입니다. AngularJS 코드를 압축하기위한 간단하고 효과적인 솔루션을 제공합니다. 이 프로젝트를 처음부터 추적하는 경우 프로젝트 루트 디렉토리에 gruntfile.js가 있어야합니다. 여기에는 모든 grunt 코드가 포함됩니다. 당신이 아직하지 않았다면, 지금 만들어주세요.
- <<> 압축-안전 코드를 생성하기위한 세 단계
grunt-contrib-concat
1 단계 - "package.json"파일을 읽도록 Grunt를 구성하십시오.
- 속성을 구성해야합니다.
grunt-contrib-uglify
객체는 Grunt Wrapper 함수의 맨 위에서 시작하여 다음 예제에서 3 행에서 5 행으로 확장되지만 곧 대부분의 코드가 포함됩니다. -
2 단계 - grunt 작업을로드 및 등록
grunt-ng-annotate
<🎜 🎜>"package.json"파일을 읽도록 Grunt를 구성한 후 Grunt가 액세스 할 수 있도록 플러그인을로드해야합니다. 이것은 플러그인 이름을 문자열로로 전달하여 수행됩니다. 이 플러그인이 래퍼 함수 <🎜 🎜> 내부에로드되었지만 <🎜 🎜> 객체 외부에 있는지 확인하십시오. 이러한 조건이 충족되지 않으면 Grunt는 제대로 작동하지 않습니다. 다음에해야 할 일은 Grunt가 특정 대상없이 호출 될 때 수행 될 기본 작업을 작성하는 것입니다. 구성에 따라 실행되므로 이러한 작업이 추가되는 순서에주의해야합니다. 여기에서 Ngannotate는 먼저 실행되도록 구성된 다음 CONCAT 및 UGLIFYJS로 구성되어 있으며 코드를 구축하는 가장 좋은 방법이라고 생각합니다. 또한 플러그인이로드 된 후에
grunt.loadNpmTask()
를 배치해야한다는 것을 기억하는 것이 중요합니다. 방금 논의한 내용을 바탕으로 Gruntfile.js는 다음과 같아야합니다. <🎜 🎜> <<> 3 단계-플러그인 구성 <🎜 🎜>ngannotate <🎜 🎜> 이제 gruntfile이 준비되었으므로 config
객체로 돌아가서 Ngannotate 플러그인을 찾을 파일을 지정하십시오. 이를 위해서는 먼저 Ngannotate를위한 부품을 만들고이 경우 라는 대상을 만들어야합니다. 이 대상에서는 DI 주석을 추가하려는 파일과 생성 해야하는 폴더를 지정합니다. 이 예에서 Grunt는 <🎜 🎜>에 지정된 세 가지 파일을 가져와 <🎜 🎜>라는 새 폴더로 생성합니다. 구성이 완료되면 를 실행하고 코드가 어떻게 생성되는지 확인할 수 있습니다. 또한 GRUNT-NG-ANNOTATE의 GitHub 페이지를 방문하여 지정할 수있는 다양한 옵션을 볼 수 있습니다.grunt.registerTask()
스플릿 <🎜 🎜>var form = angular.module('ControllerOne', []) form.factory('Users', ['$http', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }]); form.controller('InputController', ['$scope', '$http', 'Users', function($scope, $http, Users) { formData = {}; $scope.createUser = function () { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function (data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; }]);
로그인 후 복사로그인 후 복사로그인 후 복사이제 새로운 주석이 포함 된 AngularJS 코드로 폴더를 생성 했으므로이 코드를 단일 파일로 컴파일하거나 접합하여 계속하겠습니다. 우리가 ngannotate 섹션을 만든 것과 마찬가지로, 우리는 이제 Concat and uglifyjs에 대해서도 동일하게 할 것입니다. Ngannotate와 마찬가지로 두 작업 모두 대상을 받아들입니다. 많은 구성 옵션을 이러한 작업에 전달할 수 있지만 올바른 파일을 가리키기 위해 및 를 지정합니다. 추측 할 수 있듯이이 플러그인은 파일 내용을 객체로 전달하여 <🎜 🎜> 다음에 지정된 폴더로 처리합니다. 여기서 무슨 일이 일어나고 있는지 이해해 보자. 터미널에서
를 실행하여 이것을 테스트 할 수 있으므로 <🎜 🎜>가 생성됩니다.var form = angular.module('ControllerOne', []) form.factory('Users', ['$http', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }]); form.controller('InputController', ['$scope', '$http', 'Users', function($scope, $http, Users) { formData = {}; $scope.createUser = function () { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function (data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; }]);
로그인 후 복사로그인 후 복사로그인 후 복사압축 <🎜 🎜>
를 찾으려고합니다. 이것을 테스트하려면 <,,>를 실행하고 새로 압축 된 파일을보십시오. 다음은이 작업에 대한 관련 구성입니다.마지막으로해야 할 일은 압축하여 코드에서 쓸모없는 공간을 제거하는 것입니다. 이곳은 uglifyjs 플러그인이 작동하는 곳입니다. uglifyjs를 사용할 때 Grunt가 응용 프로그램을 압축하는 최종 프로세스를 완료하려고합니다. 따라서 모든 새로운 스 플라이 싱 코드가 포함 된 파일을 찾아 <🎜 <,>이 과정에서는이 모든 작업을 개별적으로 사용했습니다. 이제 이전에 만든 기본 작업을 사용해 봅시다. Grunt는 모든 지정된 작업을 하나씩 등록 순서로 실행할 수 있습니다. 이제 프로젝트에서 <<>를 실행하면 코드가 주석이 달리고, 접합되고 압축됩니다.
public/min/app.js
<🎜 🎜> <<> 결론grunt uglify
이 짧은 튜토리얼을 사용하면 배열 표기법을 잘 이해할 수 있고 AngularJS 응용 프로그램 압축을 안전하게 만드는 것이 필수적인 이유를 알 수 있기를 바랍니다. Grunt를 처음 접한다면 많은 시간을 절약 할 수있는 플러그인과 다른 플러그인을 사용해 보는 것이 좋습니다. 항상 그렇듯이 아래에 의견을 보내 주시거나 질문이 있으시면 내 프로필의 주소로 이메일을 보내주십시오. var form = angular.module('ControllerTwo', []) form.factory('Users', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }); form.controller('InputController', function($scope, $http, Users) { formData = {}; $scope.createUser = function() { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function(data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; });
로그인 후 복사faq (FAQ)
(동일한 FAQ 부분은 원본 텍스트에서와 동일한 FAQ 부분을 포함시켜야하지만 언어는 더 부드럽고 자연 스럽습니다)grunt
가있는 압축-안전 각도 코드의 FAQ위 내용은 Grunt와 함께 최소 안전 각도 코드까지 5 분의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

이 기사에서 시차 스크롤 및 요소 애니메이션 효과 실현에 대한 토론은 Shiseido 공식 웹 사이트 (https://www.shiseido.co.jp/sb/wonderland/)와 유사하게 달성하는 방법을 살펴볼 것입니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

동일한 ID로 배열 요소를 JavaScript의 하나의 객체로 병합하는 방법은 무엇입니까? 데이터를 처리 할 때 종종 동일한 ID를 가질 필요가 있습니다 ...

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

프론트 엔드에서 VSCODE와 같은 패널 드래그 앤 드롭 조정 기능의 구현을 탐색하십시오. 프론트 엔드 개발에서 VSCODE와 같은 구현 방법 ...
