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

nodejs how to serve node_modules directory to front end for access?

在不使用任何打包软件(例如 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>

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

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

我这样写:

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