簡體   English   中英

在Node.js應用程序中將npm用於前端軟件包管理器的最佳方法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM