2014-09-29 2 views
0

내 코드에서 browserify 공급 업체의 라이브러리를 분리하려고합니다. 나는 다음 (간체) 실행 : 2 개의 별도 번들에서 browserify가 종속성을로드하지 않는 이유는 무엇입니까?

browserify -r angular -o app/dist/vendor.js browserify -x angular app/js/main.js -o app/dist/app.js

내 응용 프로그램을로드

, 나는 Error: Cannot find module 'angular'를 얻을.

실행하면 모두 번들로 browserify app/js/main.js -o app/dist/app.js 모두 제대로 작동합니다.

var angular = require('angular'), app = require('./app'); angular.bootstrap(document,[app.name]);

그것은이시 실수를 한단다 첫 번째 줄, require('angular')입니다 : 내 main.js는 것처럼 보이는, 오히려 간단하다.

예, 정확한 각도로 패스되도록 package.json에 browser 항목이 포함 된 간단한 shim을 설정 했으므로 올바르게 작동합니다 (또는 all-in- 1 건).

vendor.js 및 app.js를 수동으로 편집하여 일부 로그와 함께 시도해보고 실행시기를 확인했습니다. app.js에 대한 래퍼 함수 (예, IIFE)가 먼저 실행되고 vendor.js에 대한 래퍼가 먼저 실행됩니다. 그리고 vendor.js에 대한 스크립트 태그가 처음이고 app.js에 대한 태그가 여러 번 있음을 확인했습니다.

나는 vendor.js가 app.js보다 훨씬 크기가 크고 (1.5 배), app.js가 먼저로드를 완료한다는 사실과 관련이 있을까요? 의심 스럽거나 jquery 또는 angular에 대한 모든 스크립트 태그가 깨지기는하지만 잘 모르겠습니다.

답변

0

신경 쓰지 마라. 알아 냈어. 2 개의 태그가 자동 생성되었습니다. 이로 인해 이들을 비동기로 만들고 브라우저는 완료 순서와 관련하여 원하는대로 자유롭게 수행 할 수 있습니다.

+0

자세한 정보를 제공 할 수 있습니까? 유사한 문제가 발생하고 난처한 상황입니다. "2 개의 태그가 자동으로 생성되었습니다"란 무엇을 의미합니까?이 문제는 어떻게 해결 되었습니까? – 7yl4r

+0

나는 어쨌든 더 이상 기억이 안 나네! 나는 기억하려고 노력할 것이다. ... – deitch

+0

지금 기억하고있다. 페이지에'

관련 문제