2016-06-16 3 views
2

내 모듈을 브라우저로 보내려고합니다. 나는 이것에 대한 의존성을 가지고있다. https://www.npmjs.com/package/chilkat_win32 내 node_modules 폴더에있다.이 구조는 어떻게 보이나. 당신이 볼 수 있듯이.js 클래스가없는 노드 모듈이 포함 된 파일을 브라우저로 표시

enter image description here

, 아니 JS 클래스가 없다. 그러나 .node 파일이 있습니다. 내 모듈에서 browserify를 실행하면 다음 오류가 발생합니다.

SyntaxError: Unexpected character '�' (2:2) while parsing G:\Projects\Kube 2.0\edge-node-sdk-typescript\edge-node-sdk-js\node_modules\chilkat_win32\chilkat.node while parsing file: G:\Projects\Kube 2.0\edge-node-sdk-typescript\edge-node-sdk-js\node_modules\chilkat_win32\chilkat.node 
    at DestroyableTransform.end [as _flush] (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\insert-module-globals\index.js:96:21) 
    at DestroyableTransform.<anonymous> (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:115:49) 
    at DestroyableTransform.g (events.js:260:16) 
    at emitNone (events.js:67:13) 
    at DestroyableTransform.emit (events.js:166:7) 
    at prefinish (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:465:12) 
    at finishMaybe (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:473:7) 
    at endWritable (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:485:3) 
    at DestroyableTransform.Writable.end (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:455:41) 
    at DestroyableTransform.onend (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_readable.js:495:10) 

.node 파일을 읽거나 브라우저 할 수 없기 때문에 이것이 가능합니까? 그렇다면이 모듈을 어떻게 처리하고 모듈을 브라우저화할 수 있습니까? 제발 조언.

다음은 꿀꺽 꿀꺽하는 브라우저 작업입니다.

실제로 보통 nodejs에서 실행하고 C/C++ 라이브러리를 기본 자바 스크립트 사이의 인터페이스를 제공하는 데 사용되는 부가 기능입니다
gulp.task('browserify', function() { 
    // Single entry point to browserify 
    gulp.src('lib/main/EdgeNodeBrowserify.js') 
     .pipe(browserify({ 
      standalone: 'EdgeNode' 
     })) 
    .pipe(rename('browserEdgeNode.js')) 
     .pipe(gulp.dest('./build/js')) 
}); 
+0

파일을 열어 본적이 있습니까? 거기에 자바 스크립트가 있습니까? – kinakuta

+0

열 때 알 수없는 기호가 포함되어 있습니다. 읽을 수있는 형식이 아닙니다. 메모장에서 열기를 시도했습니다. ++ – mayooran

+0

@kinakuta이 모듈에는 서버 측에서 실행될 논리가 포함되어 있으므로이 모듈을 제외 할 수 있습니다. 하지만 여전히 require 문과 코드 조각이 browserify 파일에 있으므로 모듈을 찾을 수 없다고 말합니다. 당신이 생각할 수있는 모든 솔루션? – mayooran

답변

2

. 파일은 빌드 단계에서 생성 된 2 진 파일입니다. node.js에서 해당 추가 기능은 require에 포함될 수 있지만 의미가 없으므로 브라우저를 추가 할 수 없습니다.

브라우저 쪽에서 왜 그런 C/C++ 바인딩이 필요한지 잘 모르겠습니다. 한 가지 방법은 번들로 해당 모듈을 무시하는 것입니다.

// assuming you use gulp-browserify 
    // please be advised not to use that since it's no longer being maintained 
    .pipe(browserify({ 
     ignore : ['chilkat_win32'] 
    })) 
+0

meteorjs와 함께 사용할 때 어떻게 작동합니까? 현재 그것은 유효한 승리가 아니라는 예외를 던집니다 32 응용 프로그램 – mayooran