如何将node_modules文件夹部署到生产服务器?

我在PHP(LAMP服务器)中制作一个非常简单的网站 (如pastebin)。 这个网站使用jquery和bootstrap。 我之前使用了bower ,但是我想切换到使用npm

我的目录结构是这样的:

  • 上市
    • HTML
      • 的index.php
      • node_modules
        • jQuery的
          • DIST
            • 的jquery.js
          • 加上几十个不必要的文件夹
        • 引导

当我使用bower时,我曾经将整个bower_components文件夹上传到我的FTP服务器。 我的node_modules文件夹相当大,包含数百个文件,所以我不知道是否应该上传它?

我想我可以上传package.json并在上传后在我的web服务器的命令行上运行npm install ,但是会暴露node_modules文件夹给公众构成潜在的安全隐患?

你的node_modules文件夹应该放在你的.gitignore如果你使用的是git-。 不,你不上传整个文件夹。 正如你所说,你运行npm install 。 这也适用于bower ,你不应该上传bower_components文件夹,你应该在你的服务器上运行命令。

至于问题的其他部分,你不应该公开node_modules 。 你所做的是使用一些任务pipe理器或一些打包器(gulp,grunt,webpack),并创build一个捆绑(或concatted)版本的文件(css和js)。 一旦你有这个文件,这就是你所暴露的。 这就是你在索引中包含的内容,例如<script src="dist/bundle.min.js"></script>