【问题标题】:What Are "npm run dev" and "npm run prod"什么是“npm run dev”和“npm run prod”
【发布时间】:2021-01-31 10:32:13
【问题描述】:

我使用以下命令通过 Laravel Mix 模块捆绑我的脚本:

npm run dev // Compile scripts.

npm run prod // Compile and minify scripts.

这些是本机 npm 命令还是自定义 Laravel Mix 命令?它们在哪里定义?

我注意到它们在 Laravel package.json 中被列为“脚本”。这些脚本到底是什么,通过 Laravel Mix 为 Webpack 自定义命令?

"scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "npm run development -- --watch",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},

【问题讨论】:

  • 您似乎已经找到了它们是什么以及它们的定义位置,那么您的问题到底是什么?他们是 NPM scripts
  • 它们运行什么,cross-env 还是 webpack.js?感谢您的帮助。

标签: node.js laravel npm node-modules laravel-mix


【解决方案1】:

它们确实是您发现的package.json 文件中定义的脚本。这些值由您的 shell 运行(例如,在类 UNIX 操作系统上,bashzsh 等)。

需要注意的一个关键点是node_modules/.bin 目录在执行之前添加到PATH。因此,对于您要询问的两个脚本,cross-env 可以在 node_modules/.bin 中找到(因为它几乎肯定在 package.json 的其他地方被指定为 devDependency),只要您已经运行了 @项目目录中的 987654329@ 或 npm ci

【讨论】:

  • 是的,cross-env 列在 devDependencies 中。感谢您的帮助,它帮助我了解了这两个自定义脚本的功能,这正是我正在寻找的!
【解决方案2】:

这些命令用于任何在 NPM 上支持 JSON 文件的项目。关于OP问题:

这些是原生 npm 命令还是自定义 Laravel Mix 命令?在哪里 定义了吗?

  • npm:可以说它是系统原生的命令,用于calling Node Package Manager 程序。例如,在 Windows 中,它应该是从任何控制台调用 npm 的默认命令。
  • run:这是 npm 原生的命令。更多信息here。请记住,这是原始命令 run-script 的别名。
  • devprod:它们是用户定义的。
    • dev:用于运行为项目服务、任何服务器、实时开发的特定命令。如果是网页,您会在浏览器中看到您的网页,例如,您对 HTML 代码所做的任何更改都会立即反映在您在浏览器中看到的页面中。
    • prod:编译生产所需的所有文件。最终产品。例如,对于网页,您将处理给客户端的 HTML、CSS 和 JS 文件。运行此命令的结果,预计是一个包含所有上述内容的文件夹。

我注意到它们在 Laravel package.json 中被列为“脚本”。 这些脚本到底是什么,Webpack 的自定义命令通过 Laravel 混合?

  • "dev": "npm run development":运行下面的命令,即:"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"。这行代码的作用取决于您对项目的依赖项(请参阅node_modules 文件夹,并阅读它们各自的文档)。
  • "prod": "npm run production":与上面的描述相同,但为npm run prod

【讨论】:

猜你喜欢
  • 2020-03-02
  • 2021-11-22
  • 2021-08-08
  • 2020-11-17
  • 2021-01-01
  • 2019-08-08
  • 2023-02-03
  • 1970-01-01
  • 2019-01-09
相关资源
最近更新 更多