nodejs如何将node_modules目录提供给前端进行访问?

时间:2017-04-01 03:48:08

标签: node.js node-modules

不使用任何打包软件,如Browserify或Webpack,我在nodejs中有一个简单的服务器。

var express = require('express');
var bodyParser = require('body-parser');
var request = require('request');
var app = express();
app.use(bodyParser());
app.use(express.static('public'));
app.use(express.static('node_modules'));


app.post('/api/searchjob', function (req, res) {
  res.json({data: "hello"});
});

app.get('/', function(req,res) {
  res.sendfile('public/index.html');
});

app.get('/*', function(req, res){
  res.redirect('/');
})

app.listen(process.env.PORT || 3000, function () {
  console.log('Example app listening on port 3000!')
});

我希望前端也可以访问一些node_modules包,我该怎么办?我的index.html文件位于“public”目录下,文件夹结构如下所示:

├── README.md
├── index.js
├── node_modules
├── package.json
├── public
└── yarn.lock

我尝试将脚本标记放在index.html中,但不起作用 <script src="../node_modules/vue2-google-maps/dist/vue-google-maps.js"></script&GT;

2 个答案:

答案 0 :(得分:2)

您已经在使用express静态中间件来提供node_modules目录中的文件,因此这样的路径应该有效:

<script src="/vue2-google-maps/dist/vue-google-maps.js"></script>

答案 1 :(得分:1)

我写这个:

  app.use(express.static(path.join(__dirname, 'node_modules')));
  <script src="/vue2-google-maps/dist/vue-google-maps.js"></script>