0
ES6 모듈 transpile (CJS 사용)에서 생성 된 코드를 취하고 browserify를 사용하여 단일 파일로 변환하는 gulp 작업을 만들려고합니다. 나는 다음과 같은 오류가 계속, 그러나ES6 transpiler + browserify + gulp
var gulp = require('gulp');
var browserify = require('gulp-browserify');
var es6transpiler = require('gulp-es6-module-transpiler');
var rjs = require('gulp-requirejs');
gulp.task('jscompile', function() {
gulp.src('./app/scripts/**/*.js')
.pipe(es6transpiler({
type : "cjs"
}))
.pipe(gulp.dest('./dist'))
.pipe(browserify(
'./dist/app.js'
))
.pipe('dist');
});
: - - : 나는 다음과 같은 코드가
C:\dev\temp\angulargulp>gulp jscompile
[gulp] Using gulpfile C:\dev\temp\angulargulp\gulpfile.js
[gulp] Starting 'jscompile'...
[gulp] 'jscompile' errored after 5.48 ms Object dist has no method 'on'
C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\index.js:39
if (xopts) Object.keys(xopts).forEach(function (key) {
^
TypeError: Object.keys called on non-object
at Function.keys (native)
at module.exports (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\index.js:39:23)
at Transform.transform [as _transform] (C:\dev\temp\angulargulp\node_modules\gulp-browserify\index.js:91:19)
at Transform._read (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:184:10)
at Transform._write (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:172:12)
at doWrite (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:237:10)
at writeOrBuffer (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:227:5)
at Transform.Writable.write (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:194:11)
at DestroyableTransform.ondata (stream.js:51:26)
at DestroyableTransform.EventEmitter.emit (events.js:95:17)
내가 사과 그래서이 바보 같은 질문 경우, CommonJS, 노드 및 꿀꺽 새로운 오전.
감사합니다.
편집 나는 다음과 같은 파일을 가지고있다 - 응용 프로그램/스크립트/MyController.js
var MyController = function($scope, MyService, $http) {
$scope.doSomething = function() {
console.log("Yo");
}
}
export default MyControllerDef = [ "$scope", "MyService", "$http", MyController ];
응용 프로그램은/스크립트/
/*jshint unused: vars */
import MyControllerDef from 'MyController';
import GetBookingServiceDef from 'bookingsummary/services/GetBookingService';
angular.module("test")
.controller("MyController", MyControllerDef);
angular.module("test")
.services("GetBookingService", GetBookingServiceDef);
응용 프로그램/스크립트/서비스를 app.js를/GetBookingService.js
"use strict";
var GetBookingService = function($rootScope, $http) {
return {
retrieveBooking : function() {
return $http.get("/scripts/dummyValues/booking.js").then(function(inResponse) {
if (inResponse.data instanceof String)
return JSON.toJSON(inResponse.data);
return inResponse.data;
});
},
notifyBookingUpdates : function(data) {
$rootScope.$emit("bookingsummary.update", data);
},
listenToBookingUpdates : function(bookingUpdateFn) {
$rootScope.$on("bookingsummary.update", function(e, data) {
bookingUpdateFn(data);
});
}
};
};
export default GetBookingServiceDef = [ "$rootScope", "$http", GetBookingService ];
아래의 의견을 바탕으로, 나는 꿀꺽 꿀꺽 스크립트를 수정 : -
var gulp = require('gulp');
var browserify = require('gulp-browserify');
var es6transpiler = require('gulp-es6-module-transpiler');
gulp.task('jscompile', function() {
return gulp.src('./app/scripts/**/*.js')
.pipe(es6transpiler({
type : "cjs"
}))
.pipe(gulp.dest('./dist'))
.pipe(browserify())
.pipe('./dist/finalapp.js');
});
이 오류를 수정 한이에 - :
.pipe(browserify())
.pipe(gulp.dest('./dist/app.js'));
주
이C:\dev\temp\angulargulp>gulp jscompile
[gulp] Using gulpfile C:\dev\temp\angulargulp\gulpfile.js
[gulp] Starting 'jscompile'...
[gulp] 'jscompile' errored after 5.24 ms Object ./dist/finalapp.js has no method 'on'
events.js:72
throw er; // Unhandled 'error' event
^
Error: module "MyController" not found from "C:\\dev\\temp\\angulargulp\\dist\\fake_da0c6a27.js"
at notFound (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\index.js:803:15)
at C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\index.js:754:23
at C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\node_modules\browser-resolve\index.js:185:24
at C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\node_modules\resolve\lib\async.js:44:14
at process (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\node_modules\resolve\lib\async.js:113:43)
at C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\node_modules\resolve\lib\async.js:122:21
at load (C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\node_modules\resolve\lib\async.js:54:43)
at C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\node_modules\resolve\lib\async.js:60:22
at C:\dev\temp\angulargulp\node_modules\gulp-browserify\node_modules\browserify\node_modules\resolve\lib\async.js:16:47
at Object.oncomplete (fs.js:107:15)
'xopts'는 (는) 객체입니까? – elclanrs
마지막 줄'.pipe (gulp.dest ('dist')); ' – user3995789
@elclanrs 말할 수 없습니다. xopts가 browserify에 있습니다. – user1545858