Использование 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>