2016-09-09 2 views
0

유성 1.4.1.1 앱에 [email protected]이 있습니다. 주요 유성 앱의 파일에 다음 표현식을 쓸 때 모든 것이 작동합니다.node_modules에서 소멸 할당이 작동하지 않습니다. 유성

const {a, b} = {a:1, b:2};

그러나 같은 식/일부 모듈이 node_modules에서 JS 파일에있을 때, 유성 응용 프로그램은 다음과 같은 오류와 함께 실패합니다

W20160910-00:34:14.284(5.5)? (STDERR) const {a,b} = {a: 1, b: 2}; 
W20160910-00:34:14.284(5.5)? (STDERR)  ^
W20160910-00:34:14.285(5.5)? (STDERR) 
W20160910-00:34:14.285(5.5)? (STDERR) SyntaxError: Unexpected token { 
W20160910-00:34:14.285(5.5)? (STDERR)  at exports.runInThisContext (vm.js:53:16) 
W20160910-00:34:14.285(5.5)? (STDERR)  at Module._compile (module.js:373:25) 
W20160910-00:34:14.285(5.5)? (STDERR)  at Object.Module._extensions..js (module.js:416:10) 
W20160910-00:34:14.286(5.5)? (STDERR)  at Module.load (module.js:343:32) 
W20160910-00:34:14.286(5.5)? (STDERR)  at Module.Mp.load (/home/chaudharyp/.meteor/packages/babel-compiler/.6.9.1.s4764v++os+web.browser+web.cordova/npm/node_modules/reify/node/runtime.js:16:23) 

이 사람이 나를 도울 수 ? 감사.

+0

모듈이 흐트러지지 않는 것처럼 보입니다. –

+0

예. 왜냐하면 바벨은 구조 조정 할당 문법을 이해할 수 없기 때문입니다. 권리? 하지만 내가 이해하지 못하는 이유는 이것이 * node_modules * 폴더의 모듈에서만 일어나고 주요 유성 앱 파일에서는 일어나지 않는 이유이다. – chaudharyp

+2

Babel은 종속성 모듈에서 실행되도록 구성되지 않았을 가능성이 높습니다. 일반적으로 의존성은 게시되기 전에 별도로 컴파일됩니다. – loganfsmyth

답변

1

일반적으로 npm 패키지는 es5에서 배포되므로 es6 패키지는 게시되기 전에 투명화됩니다. 따라서 대부분의 빌드 설정은 babel에게 node_modules 폴더를 무시하도록 지시합니다. 이것은 npm 패키지를 모두 제거하려고 시도 할 경우 빌드가 심각하게 느려지므로 중요합니다. 나는이 유성 설정에 익숙하지 않지만이 일반적인 관행을 따르고 있다고 확신합니다.

일반적으로 어쨌든 node_modules 폴더에서 직접 주위를 어지럽히 지 않을 것입니다. 자신의 패키지를 개발 중이고 변경할 때마다 게시하고 업데이트하지 않으려면 npm link을 시도해야합니다. 그런 다음 패키지의 "main"을 코드를 transpile하는/dist와 같은 폴더로 지정할 수 있습니다. 당신이 패키지 프로젝트에서 넘어 뜨리면, 유성 프로젝트가 업데이트를 픽업 할 것입니다.

관련 문제