首页 > 解决方案 > 什么是“npm run dev”和“npm run prod”

问题描述

我使用以下命令通过 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"
},

标签: node.jslaravelnpmnode-moduleslaravel-mix

解决方案


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

需要注意的一件事是在执行之前将node_modules/.bin目录添加到该目录中PATH。因此,在您询问的两个脚本的情况下,只要您已经运行或在项目目录中,cross-env就可以在node_modules/.bin(因为它几乎肯定在 的其他地方指定为 devDependency )中找到。package.jsonnpm installnpm ci


推荐阅读