如何使用 Bower 组件文件的正确路径设置节点项目

how to setup node project with the proper paths to bower component files

我正在尝试从这里 运行 示例应用程序聊天应用程序。sample chat 我已经安装了所有节点模块和凉亭组件。我的所有 3 个项目 运行ning 在命令提示符下都没有错误。但是我不明白为什么没有找到凉亭组件?我做了一些搜索,但我发现的一些解决方案没有用。除了 404 错误之外,没有其他错误消息。 相关代码(我相信)。总共 3 个项目,所有项目都包含引用路径的文件 我也在研究 windows 10 app.js 在聊天主应用中

var express = require('express'),
 path = require('path'),
 cookieParser = require('cookie-parser'),
 bodyParser = require('body-parser');

var routes = require('./routes');

var app = express();

 // view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.get('/', routes.index);

app.set('port', process.env.PORT || 3000);

 var server = app.listen(app.get('port'), function() {
    // log a message to console!
 });

 module.exports = app;

index.ejs 在同一项目中

<head>
<title>scotch-chat</title>
<link rel="stylesheet" href="css/app.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="libs/angular-material/angular-material.css">

<script src="libs/angular/angular.js"></script>
<script src="http://localhost:2015/socket.io/socket.io.js"></script>
<script type="text/javascript" src="libs/angular-animate/angular-animate.js"></script>
<script type="text/javascript" src="libs/angular-aria/angular-aria.js"></script>
<script type="text/javascript" src="libs/angular-material/angular-material.js"></script>
<script type="text/javascript" src="libs/angular-socket-io/socket.js"></script>
<script type="text/javascript" src="libs/angular-material-icons/angular-material-icons.js"></script>

<script src="js/app.js"></script>

聊天服务器项目 index.js

//Import all our dependencies
var express = require('express');
var mongoose = require('mongoose');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);

//Set our static file directory to public
app.use(express.static(__dirname + 'public'));

//Route for our index file
app.get('/', function(req, res) {
//send the index.html in our public directory
  res.sendfile('index.html');
});

聊天网络应用程序 server.js

 var express = require('express'),
 path = require('path'),
 cookieParser = require('cookie-parser'),
 bodyParser = require('body-parser');

 var routes = require('./routes');

 var app = express();

 // view engine setup
 app.set('views', path.join(__dirname, 'views'));
 app.set('view engine', 'ejs');

 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: true }));
 app.use(cookieParser());
 app.use(express.static(path.join(__dirname, 'public')));

 app.get('/', routes.index);

 app.set('port', process.env.PORT || 4000);

 var server = app.listen(app.get('port'), function() {
    // log a message to console!
  console.error('Port at 4k');
 });

 module.exports = app;

index.ejs 在同一项目中

<head>
<title>scotch-chat</title>
<link rel="stylesheet" href="css/app.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="libs/angular-material/angular-material.css">
<link rel="stylesheet" href="libs/MaterialDesign/css/materialdesignicons.css">
<script src="libs/angular/angular.js"></script>
<script type="text/javascript" src="libs/jquery/dist/jquery.min.js"></script>
<script src="http://localhost:2015/socket.io/socket.io.js"></script>
<script type="text/javascript" src="libs/angular-animate/angular-animate.js"></script>
<script type="text/javascript" src="libs/angular-aria/angular-aria.js"></script>
<script type="text/javascript" src="libs/angular-material/angular-material.js"></script>
<script type="text/javascript" src="libs/angular-socket-io/socket.js"></script>
<script type="text/javascript" src="libs/angular-material-icons/angular-material-icons.js"></script>

<script src="js/app.js"></script>

默认情况下,Bower 使用目录 bower_components,这应该在您的解决方案根文件夹中。该目录可以在 bower 配置文件 .bowerrc 上被覆盖(尝试在您的解决方案根文件夹中查找它。

我假设您 运行 命令 bower install 在您的解决方案根文件夹中,因此,它必须在某个地方,否则,bower install 将在没有更改的情况下关闭。如果你想让它再次安装使用命令:

bower install --force

请确保您已安装 git(某些包和依赖项可能需要)和节点,访问解决方案根路径和 运行 以下命令:

npm install

(假设其中一个包是 bower)运行:

bower install

如果不是运行:

npm install bower -g (to install globally and so that you can run bower from any folder) then;
npm install bower (to install on your solution) then;
bower install

应安装所有包及其依赖项。 关于 bower 包管理器的更多信息,请参考 bower and about .bowerrc and other options refer to bower configuration

在您提到的存储库中 scotch.io, if you browse to the the scotch-chat-main-app 您会看到一个名为 .bowerrc 的文件存在,检查它您会看到:

{
    "directory" : "app/public/libs",
    "proxy":"http://127.0.0.1:8080",
    "https-proxy":"http://127.0.0.1:8080",
    "strict-ssl"  : false
}

因此,所有 Bower 包都将安装在该目录中。 注意:由于您使用的是 windows 10,因此请确保您 运行 在具有管理员权限的终端 windows 中完成上述所有安装。

如果你在 iisnode 下 运行ning node / express,有一些陷阱..你没有提到它,所以我会假设你不是,所以,运行 解决方案,只需 运行 命令:

gulp run

让我知道进展如何。