【问题标题】:installing npm packages in laravel application在 laravel 应用程序中安装 npm 包
【发布时间】:2019-07-01 14:52:26
【问题描述】:

我现在想部署我的 laravel 应用程序,在这样做之前我只是想知道 npm 包我是安装它们还是保持原样?

该应用无需运行 npm install 即可正常运行。

应用程序大小是 20000 页,如果我运行 npm install 它将是 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 应用程序中使用过任何地方吗?
  • 这是 Laravel 提供的一个名为 Laravel Mix 的工具,可以帮助你编译和管理你的资产。如果您不使用它,则不必执行 npm install。看看这里:laravel.com/docs/5.6/mix

标签: php laravel npm


【解决方案1】:

您上面显示的包都是开发依赖项,因此您只需要在您的机器上使用这些包来执行开发。当您稍后使用npm run devnpm run prod 构建它时,它将被转换为 JS 代码。

因此,如果您说该应用程序可以在您要部署该应用程序的生产服务器上运行,这意味着您可以在服务器上全局访问您使用的包,否则它将无法 100% 运行。

所以你不需要运行npm install,因为这将安装所有dependenciesdevDependencies,所以你应该使用npm install --only=prod(或--only=production)来只安装dependencies,而不是 devDependencies,无论 NODE_ENV 环境变量的值如何。

注意:如果您的 package.json 中没有 dependencies,则无需在生产服务器上执行此操作。

【讨论】:

  • 谢谢。所以下一步是 npm install --only=prod 然后部署应用?
  • 您在生产服务器上执行此操作npm install --only=prod,而不是本地。因为您没有将安装包的node_modules 文件夹推送到存储库。
  • 我的网站将托管在 hosts.com 中,我将在没有 npm 和 node_modules 文件夹的情况下上传它。上传完成后如何运行 npm install --only=prod 命令?
  • 你将如何在那里安装composer 依赖项?我没有使用它们的经验,但是如果您可以在服务器上 ssh 并从您的项目中安装依赖项,那么您应该这样做。与composer 相同。
猜你喜欢
  • 2019-02-23
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 2019-08-30
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
相关资源
最近更新 更多