在Laravel应用中安装npm包

3

我现在想要部署我的Laravel应用,但在此之前,我想了解一下npm包是不是需要安装呢?

即使没有运行npm install,这个应用程序也可以正常工作。

如果运行npm install,应用程序的大小将从20000页增加到32000页。

请问应该怎么办?如果我安装了所有的包,接下来该做什么呢?

    "devDependencies": {
    "axios": "^0.18",
    "bootstrap": "^4.1.0",
    "cross-env": "^5.1",
    "jquery": "^3.2",
    "laravel-mix": "^4.0.7",
    "lodash": "^4.17.5",
    "popper.js": "^1.12",
    "resolve-url-loader": "^2.3.1",
    "sass": "^1.15.2",
    "sass-loader": "^7.1.0",
    "vue": "^2.5.17"
}

所有这些程序包的目的是什么?你在Laravel应用程序中使用过任何一个吗? - Shivani Sonagara
这是一个由Laravel提供的工具,称为Laravel Mix,帮助您编译和管理资产。如果您不使用它,您无需进行npm安装。在此处查看:https://laravel.com/docs/5.6/mix - catcon
1个回答

2
你上面展示的包都是开发依赖项,所以你只需要在自己的机器上安装它们才能进行开发。当你使用 npm run devnpm run prod 构建时,它将被转换为 JS 代码。
因此,如果你说该应用程序在你想要部署该应用程序的生产服务器上运行良好,这意味着你可以全局访问你在服务器上使用的包,否则它将无法完美运行。
所以你不需要运行 npm install,因为它会安装所有的 dependenciesdevDependencies,所以你应该使用 npm install --only=prod(或 --only=production)仅安装 dependencies,而不是 devDependencies,无论 NODE_ENV 环境变量的值如何。
注意:如果你的 package.json 中没有 dependencies,那么在生产服务器上就不需要这样做。

谢谢。那么下一步是运行 npm install --only=prod,然后部署应用程序吗? - omar kaddoura
在生产服务器上执行 npm install --only=prod,而不是在本地执行。因为您不会将安装了包的 node_modules 文件夹推送到存储库中。 - nakov
我的网站将托管在hostinger.com上,我将上传它,但不包括npm和node_modules文件夹。上传完成后,我该如何运行"npm install --only=prod"命令? - omar kaddoura
你打算如何在那里安装 composer 依赖项?我没有使用它们的经验,但如果你可以通过 ssh 连接到服务器并从你的项目中安装依赖项,那就应该这样做。与 composer 相同。 - nakov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接