如何将composer/npm项目放到生产Web服务器上?

如何将composer/npm项目放到生产Web服务器上?,web,npm,composer-php,Web,Npm,Composer Php,我已经在网上搜索过了,但是我还没有找到一个我满意的答案 如果我准备好了一个使用npm或composer将其上传到Web服务器的项目,那么我该如何将其“导出”到Web服务器呢。因为您通常不会将完整的node_modules目录上载到Web空间,因为您不必将空间浪费在开发文件(如演示或其他)上。因此,您可以将所需的文件上载到Web服务器上,但链接和大型项目的内容也意味着需要大量的工作来获取所需的文件 那么我该怎么办呢?在部署JS部件时,您通常会将它们从许多模块编译成少量文件(可能是单个文件)。您只需

我已经在网上搜索过了,但是我还没有找到一个我满意的答案

如果我准备好了一个使用npm或composer将其上传到Web服务器的项目,那么我该如何将其“导出”到Web服务器呢。因为您通常不会将完整的node_modules目录上载到Web空间,因为您不必将空间浪费在开发文件(如演示或其他)上。因此,您可以将所需的文件上载到Web服务器上,但链接和大型项目的内容也意味着需要大量的工作来获取所需的文件


那么我该怎么办呢?

在部署JS部件时,您通常会将它们从许多模块编译成少量文件(可能是单个文件)。您只需要部署已编译的部分(这就是为什么您可以跳过
节点\u模块
)。一个很好的例子可能是jQuery的源代码,您可以在中找到。它由多个文件组成,而另一个文件仅由一个更密集的文件组成。在开发中使用可读文件有助于监督更改—在生产中使用单个密集文件可以加快使用HTTP的交付

相反,PHP不是一种编译语言,而是一种需要解释服务器上所有源文件(包括您自己编写的代码和
vendor
中的库)的语言。运行应用程序时,将读取所有必需的文件。保持预加载或OpCache。此外,这意味着:真正地读取这些精确的文件,而不是一些编译版本。这就是为什么不能跳过部署所有这些文件


如果搜索要跳过的部分:如果不打算在开发模式下运行应用程序,可以在部署脚本中调用
composer install--no dev
。这将删除仅用于开发的依赖项,如Symfony的评测和web工具栏,或如PhpUnit或PHPCS的CI工具

非常感谢您的帮助!我只有一个问题。“编译”是什么意思?我认为Javascript还具有导入项目或将Javascript导入html文件等功能。例如,我有一个html站点,我用导入Javascript,但在示例文件夹中,我大部分时间都有demo之类的文件或我不需要的文件。