Я просто изучаю Node.js и Express с планом использования Angular для интерфейса. Я использую npm для модулей Node.js, но я также хотел бы использовать npm для моих внешних зависимостей. Все учебники, которые я могу найти, используют Bower для библиотек frontend. Каков рекомендуемый способ использования npm для обоих?Каков наилучший способ использования npm для моего менеджера пакетов в приложении Node.js?
У меня в настоящее время приложение Angular работает в общей папке, которую я установил как статическую папку, используя express.static. У меня есть зависимостей frontend, также установленных в корневой папке node_modules и package.json. Чтобы приложение «Угловое» было доступно для доступа к библиотекам, у меня есть node_modules, также устанавливаемый как статический каталог. Это не так хорошо.
Это хорошая идея иметь два файла package.json? Один в корне и один в общей папке? Или есть способ сказать npm для установки некоторых библиотек в корневом каталоге и некоторых в общей папке (возможно, в подпапке lib)?
Вот мой узел код приложения:
var express = require('express');
var app = express();
var port = 3000;
app.use(express.static('public'));
app.use(express.static('node_modules'));
app.get('/', function(req, res) {
res.send('Hello world');
});
app.listen(port, function(err) {
console.log('Running server on port ' + port);
});
И мой Угловой код приложения для чего это стоит:
<html>
<header>
<title>My Test Site</title>
<script src="angular/angular.min.js"></script>
<script>
angular.module('MyApp', [])
.controller('MyController', [function() {
var ctrl = this;
// Properties
ctrl.myTitle = "My Angular App";
}]);
</script>
</header>
<body ng-app="MyApp" ng-controller="MyController as myctrl">
<h2>Welcome to {{ myctrl.myTitle }}</h2>
</body>
</html>
'У меня есть node_modules также установки в качестве статического каталога. Это почему-то не так. они представляют собой различное программное обеспечение, обменивающееся с помощью своего рода api. В качестве двух разных программ у них есть два разных дерева депо, два разных файла пакета и так далее. В противном случае вы используете построитель активов (gulp, grunt, webpack), и вы будете ссылаться на свою зависимость от приложения на стороне клиента, чтобы создать сборку, которая будет загружена на стороне клиента. –
@ mh-cbon Итак, вы предлагаете иметь два отдельных файла package.json, один для приложения Node и один для публичного приложения? – Jason
да, это одна возможность, которую я бы не боялся. –