2014-10-06 4 views
4

У меня возникает проблема, когда я пытаюсь использовать bowserify, angularjs и coffeescript.Пустой объект требует углового браузера

В самом деле, когда я пытаюсь требовать («угловатый»), я получаю пустой объект:

angular = require('angular') 
console.log angular ## return an empty object {} 

configuration = require('../../config/config') 
console.log configuration ## returns my fully config file correctly 

Я не знаю, почему он не работает должным образом в этом случае: - /. Это мой package.json где я положил мой Personnal угловым зависимости:

{ 
    "dependencies": { 
     "gulp": "*", 
     "gulp-browserify": "*", 
     "coffeeify": "*", 
     "gulp-concat": "*" 
    }, 
    "browser": { 
     "angular": "./app/core/angular-libs/angular.min.js", 
     "angular-route": "./app/core/angular-libs/angular-route.min.js", 
     "angular-animate": "./app/core/angular-libs/angular-animate.min.js" 
    } 
} 

И это мой Глоток файл, который генерирует мой bundle.js в Dest папке:

Может ли вы помочь меня ? : -/

Спасибо за заранее

+0

Кстати, вы можете использовать Browserify напрямую (в отличие от использования подключаемого модуля gulp-browserify) https://github.com/gulpjs/gulp/blob/master/docs/recipes/fast-browserify-builds- with-watchify.md –

+0

Проверьте это. http://stackoverflow.com/questions/25088406/cant-get-external-library-with-browserify-and-debowerify/25111348 –

ответ

9

Угловое 1 не поддерживает CommonJS модули, так что 'экспорт' пустой объект.

Вместо этого просто требуют (без присвоения результата):

require('angular') 

Это будет придавать угловой к глобальному объекту.

ОБНОВЛЕНИЕ: As of Angular 1.3.14, require('angular') теперь возвращает объект angular.

1

Вы также можете попробовать browserify-shim, чтобы связать объект angular с module.exports.

npm install -save-dev browserify-shim 

мне удалось получить angular работать со следующей конфигурацией в package.json:

{ 
    "browser": { 
     "angular": "./node_modules/angular/angular.js" 
    }, 
    "browserify-shim": { 
     "angular": "angular" 
    }, 
    "browserify": { 
     "transform": [ "browserify-shim" ] 
    } 
} 

Это получает вокруг вопроса создания углового глобального объекта, а также. Он (переменная angular) может оставаться объектом, хранящимся в глобальной переменной с тем же именем, но ссылка всегда будет правильной, если кто-то перепишет глобальную переменную.

Смежные вопросы