Я запускаю browserify в моем коде, это выглядит следующим образом:

import './app';

//——————————————————————————————————————————————————//
// Components
//——————————————————————————————————————————————————//

import './components/_ntToggleClass';

Приложение просто

const app = angular.module('app', []);

В то время как файлы в components, ну, в общем, компоненты. Но они используют упомянутое app:

  app.directive('ntToggleClass', () => {
    ...    }

Когда я все вручную складывал в один файл, все работало. Но после того, как я использовал browserify на этом, я получаю

Uncaught ReferenceError: приложение не определено

Когда я заглядываю внутрь кода, там и var app, и директива.

5
Tomek Buszewski 15 Дек 2015 в 17:19

3 ответа

Лучший ответ

Мой друг пришел с помощью ;-)

Я использую Babel (я думал, что это было очевидно, поскольку я использовал import, а не require) для своего кодирования (точнее, Babelify with es2015), поэтому, как и я, {{ X3}}, мне тоже нужно export.

Решение очень простое, все что мне нужно было сделать, это поставить

export default app;

В конце моего app.js файла, а затем импортируйте его, используя

import app from '../app';

В мои директивы / компоненты и т. д.

1
Tomek Buszewski 15 Дек 2015 в 19:07

Я думаю, что это о порядке определения.

{{Х0}} Эта часть должна быть сверху ниже части:

app.directive('ntToggleClass', () => {
    ...    }
0
Ibrahim Mumcu 15 Дек 2015 в 14:33

Я собрал краткий пример на github. Это даст вам рабочий репозиторий, который запускает browserify.

Я удалил свои предыдущие комментарии, так как я думаю, что репо должно отвечать на ваши вопросы.

edit: Я думаю, я только что получил ваш вопрос, вы пытались создать глобальную переменную app, чтобы просто использовать ее в другом файле? Это невозможно при использовании browserify, любая переменная, которой нет required в вашем файле, будет возвращать undefined.

При использовании browserify просто требуйте все, что вам нужно.

1
Pjetr 15 Дек 2015 в 15:09