什么是 "npm run dev" 和 "npm run prod"

What Are "npm run dev" and "npm run prod"

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

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"
},

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

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

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

Are these native npm commands or custom Laravel Mix commands? Where are they defined?

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

I noticed they are listed as "scripts" in the Laravel package.json. What exactly are these scripts, custom commands for Webpack via Laravel Mix?

  • "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