[英]What is the best way to use npm for my front end package manager in a Node.js app?
我只是在學習Node.js和Express,並計划將Angular用於前端。 我為Node.js模塊使用npm,但我也想為前端依賴項使用npm。 我可以找到的所有教程都將Bower用於前端庫。 建議同時使用npm的方法是什么?
我目前在公共文件夾中運行Angular應用程序,我已使用express.static將其設置為靜態文件夾。 我的前端依賴項也安裝在根node_modules文件夾和package.json中。 為了使Angular應用能夠訪問其中的庫,我將node_modules也設置為靜態目錄。 這感覺不對勁。
擁有兩個package.json文件是一個好主意嗎? 在根目錄中一個在公用文件夾中? 還是有辦法告訴npm在根目錄中安裝一些庫,在公共文件夾中安裝一些庫(可能是lib子文件夾)?
這是我的Node應用程序代碼:
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);
});
而我的Angular應用代碼說明了它的價值:
<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>
基於上面的mh-cbon注釋,我將npm依賴項分為兩個package.json文件,一個位於節點/服務器端的根目錄中,一個位於Angular / ui端的公用文件夾中。 安裝每個過程都是在構建過程中完成的。 當我計划將服務器端分離為Docker映像時,這實際上效果很好。 由於這兩部分是分開的,所以我可以輕松地使用Docker卷在容器外部的Angular代碼上工作。
對Node應用程序的唯一更改是刪除了對node_modules的靜態調用:
var express = require('express');
var app = express();
var port = 3000;
app.use(express.static('public'));
app.get('/', function(req, res) {
res.send('Hello world');
});
app.listen(port, function(err) {
console.log('Running server on port ' + port);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.