Подтвердить что ты не робот

Как использовать модульную систему node.js на клиентской

Я хотел бы использовать модульную систему CommonJS в клиентском приложении javascript. Я выбрал nodejs как реализацию, но не могу найти учебник или документы о том, как использовать nodejs clientside, т.е. Без использования node application.js

Я включил node.js, как это на моей странице html:

<script type="text/javascript" src="node.js"></script>

Обратите внимание, что я не делал nodejs на моей локальной машине, я все равно на Windows (я знаю опцию Cygwin). Когда я хочу использовать функцию require в своем собственном javascript, она говорит undefined.

var logger = require('./logger');

Мой вопрос в том, можно ли использовать nodejs, как это?

4b9b3361

Ответ 1

Node.js - это серверное приложение, в котором вы запускаете javascript на сервере. Вы хотите использовать функцию require на клиенте.

Лучше всего просто написать метод require самостоятельно или использовать любую из других реализаций, которые используют другой синтаксис, например requireJS.

Проведя немного дополнительных исследований, кажется, что никто не написал модуль с использованием синтаксиса commonJS для клиента. В конечном итоге я напишу свой собственный, я рекомендую вам сделать то же самое.

[изменить]

Одним из важных побочных эффектов является то, что функция require является синхронной и, таким образом, загрузка больших блоков javascript полностью блокирует браузер. Это почти всегда нежелательный побочный эффект. Вам нужно знать, что вы делаете, если собираетесь это сделать. Синтаксис requireJS настроен так, что он может выполняться асинхронно.

Ответ 2

SubStack на github имеет модуль под названием node-browserify.

Он сжимает и связывает ваши модули и передает их в виде одного js файла, но вы используете его так же, как Node.js(пример из модуля readme):

<html>
    <head>
    <script type="text/javascript" src="/browserify.js"></script>
    <script type="text/javascript">
        var foo = require('./foo');

        window.onload = function () {
            document.getElementById('result').innerHTML = foo(100);
        };
    </script>
</head>
<body>
    foo = <span style='font-family: monospace' id="result"></span>
</body>
</html>

Из описания модуля:

Browserify

Сторона браузера require() для ваших модулей node и пакетов npm **

Browserify связывает все досрочно в указанной вами точке монтирования. Ни один из этих загружающих бизнес-модулей для ajaxy.

Дополнительные функции:

  • рекурсивно связывать зависимости модулей npm
  • использует es5-shim для браузеров, которые сосут
  • фильтры для {min, ugl} ification
  • кофе script тоже работает!

Ответ 3

Как сказал Марчелло...

Browserify

Browserify

Это магически позволяет вам это сделать.

Ответ 4

Если вы хотите написать код для браузера с теми же модулями стиля, что и для Node.js, попробуйте Webmake, Посмотрите также на простой прототип сборки приложения следующим образом: SoundCloud Playlist Manager

Ответ 5

Для клиентской стороны существует хорошая библиотека node.js-like. Это называется обертка. Проверьте kamicane/wrapup

Ответ 6

Попробуйте

angular.js 

или

express.js

чтобы написать код на стороне клиента.

Ответ 7

Если я не ошибаюсь, то все, что вам нужно - это запустить кусок кода или вызвать функцию всякий раз, когда клиент выполняет требуемые действия. Я хочу выполнить описанную выше операцию, и вы можете использовать ajax для вызова функции со стороны клиента Следующая ссылка поможет u