2017-01-03 5 views
0

프로젝트 종속성을 업데이트 한 후 오류가 발생하기 시작했습니다. Browserify는 ES6로 작성된 JS 코드를 파싱하는 데 문제가 있습니다. Browserify는 ES5를 기대합니다.Keystone + React : '가져 오기'와 '내보내기'가 'sourceType : module'과 함께 만 나타날 수 있습니다.

나는 왜 여기에 sourceType: module이있는 것 같지 않은지 이해하지 못한다.

출처 :

var browserify = require('browserify-middleware'); 
var keystone = require('keystone'); 
var importRoutes = keystone.importer(__dirname); 

// Setup Route Bindings 
exports = module.exports = function(app) { 

    app.use('/js', browserify('./client/scripts')); 

}; 

서버 콘솔 : 위의 코드에서 babelify를 생략하는 경우

var babelify = require('babelify'); 
var browserify = require('browserify-middleware'); 
var keystone = require('keystone'); 
var importRoutes = keystone.importer(__dirname); 

// Setup Route Bindings 
exports = module.exports = function(app) { 

    app.use('/js', browserify('./client/scripts', { 
     transform: [babelify.configure({ 
      extensions: ['es6'], 
      plugins: ['object-assign'] 
     })] 
    })); 

}; 

같은이 발생

문제는 그냥 잘못된 값으로했다
GET /js/Application.js 500 61.176 ms 
Error thrown for request: /js/Application.js 
Error: Parsing file /home/user/project/client/scripts/Application.js: 'import' and 'export' may appear only with 'sourceType: module' (1:0) 
    at Deps.parseDeps (/home/user/project/node_modules/module-deps/index.js:454:28) 
    at fromSource (/home/user/project/node_modules/module-deps/index.js:391:44) 
    at /home/user/project/node_modules/module-deps/index.js:385:17 
    at ConcatStream.<anonymous> (/home/user/project/node_modules/concat-stream/index.js:36:43) 
    at emitNone (events.js:91:20) 
    at ConcatStream.emit (events.js:185:7) 
    at finishMaybe (/home/user/project/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:475:14) 
    at endWritable (/home/user/project/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:485:3) 
    at ConcatStream.Writable.end (/home/user/project/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:455:41) 
    at DuplexWrapper.onend (/home/user/project/node_modules/readable-stream/lib/_stream_readable.js:504:10) 
    at DuplexWrapper.g (events.js:291:16) 
    at emitNone (events.js:91:20) 
    at DuplexWrapper.emit (events.js:185:7) 
    at endReadableNT (/home/user/project/node_modules/readable-stream/lib/_stream_readable.js:926:12) 
    at _combinedTickCallback (internal/process/next_tick.js:74:11) 
    at process._tickCallback (internal/process/next_tick.js:98:9) 

답변

0

extensions: ['es6'], 필요한 것은 실제 확장을 넣는 것이 었습니다. JS 파일의 내용은 extensions: ['.js']입니다.

근로 코드 :

var babelify = require('babelify'); 
var browserify = require('browserify-middleware'); 
var keystone = require('keystone'); 
var importRoutes = keystone.importer(__dirname); 

// Setup Route Bindings 
exports = module.exports = function(app) { 

    app.use('/js', browserify('./client/scripts', { 
     transform: [babelify.configure({ 
      extensions: ['.js'], 
      plugins: ['object-assign'] 
     })] 
    })); 

};