Использование require ('angular') в node дает окно не определено

Итак, я совершенно не знаком с node, но я понял, как установить node_modules. Я пытаюсь выяснить, как правильно включить "Angular" в свой код.

Итак, из нового экспресс-4 спина я сделал:

npm install --save angular

Затем я вошел в routes/index.js и добавил require('angular'):

var express = require('express');
var router = express.Router();
require('angular');

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

Но когда я запускаю node, я получаю сообщение об ошибке:

ReferenceError: window is not defined
    at Object.<anonymous> (/Users/al/Projects/node/podcastsearch/podcast/node_modules/angular/angular.js:26307:4)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/al/Projects/node/podcastsearch/podcast/node_modules/angular/index.js:1:63)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)

Каким образом можно включить angular?

Ответ 1

Angular - это слайд слайдов script. Node JS требует загрузки модулей Node, а Angular не является модулем Node.

На вашей странице HTML вы должны сделать что-то вроде этого:

<html>
  <head>
    <title>My Angular App!</title>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script>
    <script src="app.js"></script>
  </head>
  <body ng-app="flapperNews" ng-controller="MainCtrl">
    <div>
      {{test}}
    </div>
  </body>
</html>

Обновление: На основе комментариев. Angular - https://www.npmjs.com/package/angular

Выбирает для вас файлы Angular js и сохраняет их в папках модулей Node. Angular по-прежнему остается клиентской библиотекой, и вам нужно добавить тэг script в свой HTML для использования angular. Вы не должны требовать его в коде Node. Пожалуйста, проверьте образцы, указанные в этой ссылке.

Иначе вы можете подумать об использовании js, head js, браузера и т.д. на стороне клиента.

Ответ 2

Обновить для @ AnujYadav ответ, используя версию webpack 3.4.1:

Установить angular:

npm install angular --save-dev

Конфигурация (в файле webpack.config.js):

module.exports = {
    entry: {
        angular: path.resolve(__dirname, './node_modules/angular/angular')
    },
    output: {
        ...
    },
    module: {
        ...
    }
};

На странице html:

<script src="/{your_path}/angular.js"></script>
<script>
    // you can use 'angular' now    
</script>