웹 사이트에 emscripten 컴파일 모듈을 추가하려고합니다. 이를 위해 나는 browserify (babelify 변환 포함)를 사용하고 있습니다.Emscripten module in browserify 파이프 라인
번들을 만들 때 문제가 발생합니다. emscripten 코드는 결과 js 파일에 래핑되지만 Module은 빈 객체입니다.
길고도 짧은 이야기 : 나는 몇 가지 제한 함께 일하고 있어요
_main2.default._int_sqrt is not a function
:
import Module from "./main";
console.log(Module._int_sqrt(9));
반환이 오류를 다음과 같은 그림을 보여줍니다 같은 코드는 실제로 해석되는 그것의 스크립트를 HTML 페이지에 직접 추가 할 수는 없습니다. 이 빌드 단계의 출력은 모든 종속성을 포함하는 단일 js 파일이어야합니다.
최소한의 테스트 사례 here을 만들었으므로 누구나 문제를 복제 할 수 있습니다.
emscripten이나 browserify의 버그가 아니므로 이에 대한 지침을 알려 주시면 감사하겠습니다.
마지막주의 : 소스 cpp 코드가 올바르게 작동합니다. 모카로 작성된 테스트를 실행하고 있는지 확인할 수 있습니다.
을 확인하고 싶은 경우에, the test case 업데이트되었습니다
오류가이었다 나는 js에 오류 코드가있어서 그 결과가 비어있는 파일이었고 js 파일을 확인하고 특히 vars, good luck 대신 literal objects를 반환했습니다. – ZiTAL
js 파일을 검사하면 모듈을 가져 와서 결과를 인쇄합니다. 수입. 오류는 js 자체와 관련이 없습니다. emscripten 모듈은 노드 환경에서 올바르게 처리됩니다 (예 : mocha test demonstrations). 문제는 browserify에 의해 수행 된 자동 번들에서 발생합니다. 환경을 브라우저가 감지하므로 nodejs 모듈 (module.exports 변수에 자체 바인딩)처럼 동작 할 것으로 예상됩니다. –
1) 최적화가없는 모듈 2) browserify를 사용하여 어떤 변수가 설정되어 있는지 확인하십시오 3) 컴파일 된 모듈에서 흐름을 봅니다 4) 변수가 맞습니까? –