首页
学习
活动
专区
圈层
工具
发布

你要知道的 Npm Script 都在这里

在拿到一个项目之后,如何看入口文件,如何运行项目,我们都会找到 package.json 中的 script 。...specified\" && exit 1" } 值得注意的是,NPM 中所有依赖的 node_modules bin 都可以在脚本中直接访问,就像在路径中被引用的一样。...为此,我们可以使用 && 或 & 要依次运行多个脚本,可以使用 && ,例如: npm run lint && npm test 要并行运行多个脚本,可以使用& 例如: npm run lint&npm...处理, (比如在 ci 中,即使测试命令失败,也希望整个管道继续运行,就可以使用这个命令) npm run --silent // 或者 npm run -s 如果脚本名不存在时不想报错...添加到脚本中的任何 -- 都会被转换成一个带有 npm 配置前缀的环境变量。

1.5K20

浅谈前端工程化的发展以及相关工具介绍

dependencies: 运行时需要的模块 devDependencies:本地开发需要运行的模块optionalDependencies: 可选的模块,即使安装失败安装进程也会正常退出peerDependencies...所有下载的模块,最终都会记录在 package-lock.json 完全锁定版本,下次我们再 npm install 时,就会先下载 package-lock 里面的版本。...我们可以通过 yarn add 来安装一个模块,通过 yarn xxx 来运行 scripts 中的脚本。...dependencies 是指业务运行时需要的模块。optionalDependencies 是可选模块,安不安装均可,即使安装失败,包的安装过程也不会报错。...webpack 实际上和 gulp grunt 这类的任务处理工具有些类似,但是它本身具有打包的功能,同时也支持通过中间件和插件实现其他领域的功能,最终通过一个命令就能处理完成所有操作。

75730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DevOps最佳实践之应用开发和部署

    减少脚本/工具对环境的依赖 一般情况下,脚本都会或多或少的使用到一些外部工具。而我们的脚本很有可能会运行在不同的环境中,不同环境中提供的工具也会有版本和用法的差异。...每个脚本只做一件事,职责单一,同时便于理解和管理。 可以方便的知道所有可用的脚本。如: 如果跨团队合作,或者团队成员有轮换的时候,可以更快速的掌握业务管理的上下文。...管理脚本和业务脚本分离 我们的应用中一般都会有一些脚本来做一些辅助性的工作。这些脚本通常会和业务代码放在同一个代码仓库,使用版本控制来进行管理。这些脚本大致分为两种:管理脚本和业务脚本。...的 step 中去运行(如果需要可以添加 block 来强制检查 npm-check-updates 的结果)。...缺点: 定期部署会对系统的稳定运行造成一些影响,变化本身就会带来一定的未知风险。

    71810

    【 Node.js 进阶】你应该知道的 NPM 知识都在这!

    查看当前项目的所有 npm 脚本命令,可以使用不带任何参数的npm run命令。...原理 我们每次在运行 scripts 中的一个属性时候(npm run),**实际系统都会自动新建一个shell(一般是Bash),在这个shell里面执行指定的脚本命令。...但是 npm 本身对两个脚本提供了默认值,这两个脚本不用在 script 属性中定义,可以直接使用 "start": "node server.js" "install": "node-gyp rebuild...的属性运行的时候都会新启动一个 shell,所以在 prestart中设置的环境变量只对应了那个shell的运行时。...env 环境变量 我们在执行 npm run 脚本时候, npm 会设置一些特殊的env环境变量。其中package.json中的所有字段,都会被设置为以npm_package_开头的环境变量。

    1.9K10

    通过 concurrently 并行运行任务,优化开发环境脚本配置

    当用户运行 npm start 时,实际上等效于运行 npm run start。由于 start 是一个特殊的脚本名称,直接使用 npm start 会更加简洁。...我们需要详细分析:npm: 说明接下来要运行的是一个 npm 脚本,而不是直接的 shell 命令。dev:* 是一个通配符模式,表示所有以 dev: 开头的脚本。...concurrently 将运行匹配的所有脚本,即:npm run dev:servernpm run dev:client 这允许开发者通过一个通配符轻松启动多个相关任务,而不需要显式列出每个脚本...匹配并运行所有 dev:* 模式的脚本。在终端中会看到来自多个任务的并行日志输出,各自有颜色区分和明确的前缀标识。...调试建议如果 concurrently 的某个命令失败,默认行为是继续运行其他任务。可以使用 --kill-others 参数确保任一任务失败时终止所有任务。

    55910

    小程序中使用npm安装vant组件实现按需引入,减少代码包大小和避免触发用户隐私协议

    来管理,方便维护正常项目中我们可能都会选择 npm 的方式,但是这种方式 vant 和小程序并不支持像我们一般的前端项目中的按需引入,小程序开发工具构建 npm 时会把整个 vant 的组件编译到 miniprogram_npm...不过每次我们提交版本都要这样去操作的话,不光容易出错也很费时间,这里我们就可以借助 node 和 npm 的 script 脚本来自动处理。.../weapp 目录下将没有用到的多余组件删除掉就行了,最后直接把相关代码放到项目中的 script 脚本中操作,这样通过类似 npm run vant 这样一条命令 1 秒钟就可以删除掉未使用到的多余组件...即使你的项目中压根没使用这类组件,上传版本提审的时候小程序还是会自动扫描你 miniprogram_npm 目录下的所有文件,只要代码中有相关的 api 代码就会认为你用到了,然后霸道地强制要求你填写和更新相关隐私说明...)上传到了 npm 公共仓库中,大家可以直接通过 npm 来下载使用:全局安装npm install -g vant-tree-shaking在小程序开发者工具中上传小程序代码前,直接在项目根目录终端中运行命令

    75400

    vuepress建站过程中遇到的一些问题

    deploy-脚本部署失败 当你在命令行终端执行bash deploy.sh,报如下错误 ?...单独执行npm run docs:build没有问题,但是一旦执行这个自动化部署脚本命令,就报这个错误,这个错误令人很奔溃 把deplpy.sh中的set -e注释掉,重新在执行bash deploy.sh...就可以了的 # set -e npm-安装某些包失败 有时候,您在使用某些cli或者命令的时候,会报这个错误 ?...提醒 推荐使用yarn进行安装某些插件和安装包,因为npm有时候,npm 会生成错误的依赖树,导致安装某些插件安装不上,即使安装上了,在执行npm run dev启动项目时,会报错,影响项目的启动 配置自定义域名不生效...,你也是可以的,只要耐心折腾一下,本身并无多大技术含量,只有折腾过了,你才会发现新的大陆 如果您有关于VuePress搭建网站或二次开发中有任何问题,欢迎提`issue,也欢迎评论下方,留言,我们一起学习讨论

    3.3K20

    vuepresss建站过程中遇到的一些问题

    deploy-脚本部署失败 当你在命令行终端执行bash deploy.sh,报如下错误 ?...单独执行npm run docs:build没有问题,但是一旦执行这个自动化部署脚本命令,就报这个错误,这个错误令人很奔溃 把deplpy.sh中的set -e注释掉,重新在执行bash deploy.sh...就可以了的 # set -e npm-安装某些包失败 有时候,您在使用某些cli或者命令的时候,会报这个错误 ?...提醒 推荐使用yarn进行安装某些插件和安装包,因为npm有时候,npm 会生成错误的依赖树,导致安装某些插件安装不上,即使安装上了,在执行npm run dev启动项目时,会报错,影响项目的启动 配置自定义域名不生效...,你也是可以的,只要耐心折腾一下,本身并无多大技术含量,只有折腾过了,你才会发现新的大陆 如果您有关于VuePress搭建网站或二次开发中有任何问题,欢迎提`issue,也欢迎评论下方,留言,我们一起学习讨论

    1.5K20

    npm脚本和package.json

    比如用户不需要知道怎么测试你的项目,只要运行 npm  run  dev 即可   查看当前项目的所有npm脚本命令,可以使用不带任何参数的  npm  run  命令。...因此,只需要是shell (一般是bash) 可以运行的命令,就可以写在npm脚本里面。   ...还意味着,当前目录的node_modules/.bin 子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。...npm脚本的退出码,也遵守shell脚本规则。如果退出码不是0,npm 就认为这个脚本执行失败。 3、通配符   由于npm脚本就是shell脚本,因此可以使用shell通配符。...这个值可以用下面的方法覆盖。 $ npm config set foo:port 80   最后,env命令可以列出所有环境变量。

    2.2K20

    .gitlab-ci.yml 配置文件详解

    如果一切运行正常(没有非零返回值),您将获得与提交相关联的漂亮绿色复选标记。这样可以在查看代码之前轻松查看提交是否导致任何测试失败。...由于将 .gitlab-ci.yml 文件存放在仓库中进行版本控制,使用单一的配置文件来控制流水线,具有读访问权限的每个人都可以查看内容,从而使其更有吸引力地改进和查看构建脚本。...旧的版本也能构建成功,forks项目也容易使用CI,分支可以有不同的流水线和作业。 软件开发的持续方法基于自动执行脚本,以最大程度地减少在开发应用程序时引入错误的机会。...except 限制作业在什么时候不创建 tags 作用使用的Runner运行器的标签列表 allow_failure 允许作业失败,失败的作业不影响提交的状态 when 什么时候运行作业 environment...coverage 作业的代码覆盖率 retry 作业失败时,可以自动执行多少次 parallel 指定并行运行的作业实例 trigger 定义下游流水线的触发器 include 作业加载其他YAML文件

    2K10

    你真的了解package.json吗?

    当我们运行该命令时,它会询问我们一系列的问题,我们输入的所有答案都会显示在我们的 package.json 文件中。...其键是我们可以使用 npm run 运行的脚本,值是实际运行的命令。这些通常是终端命令,我们将其放入脚本字段中,以便我们可以记录它们并轻松地重用它们。...我们还可以指定在软件包生命周期的不同时间运行的脚本。例如,我们可以添加一个 prepublish 脚本,在软件包发布之前运行(当我们运行 npm publish 时)。...运行 npm install --workspaces 将在两个目录中运行 npm install。 实际上,我们可以使用--workspaces 命令在指定的所有工作空间中运行任何脚本。...现在,如果在根目录中运行 npm run lint --workspaces --if-present,它将在所有具有 lint 脚本的工作空间中运行 lint 脚本。

    89110

    npm并行&串行执行多个scripts命令

    通过npm run 可以运行 package.json 中脚本,Npm 命令不能提供立即运行多个脚本的方式,同时运行需要打开多个终端窗口 npm scripts node_modules.../.bin 目录下的命令,可以直接在 scripts 中调用 利用一些脚本生命周期时间 "scripts": { "preinstall": "....npm-run-all 跨平台,一种可以并行或顺序运行多个 npm 脚本的 CLI 工具。...借助 scripts 生命周期事件关系 通过 npm-run-all 可以启发我们,可以通过 scripts 的一些属性关系来达到顺序执行。...因为内置的事件名称本身就有一定的特定意义 其他 目前社区还有类似的一些开源处理方式(shell-executor 、npm-parallel )等等,实现方式基本大同小异,感兴趣的小伙伴可自行查阅!

    7.3K42

    从入门到精通:.gitlab-ci.yml文件的完整指南

    这样,在每次作业执行之前和之后都会执行相应的脚本。 除了简单的日志打印外,before_script和after_script还可以用于执行复杂的脚本任务,如安装依赖、配置环境、上传构建产物等。...它的作用是告诉GitLab Runner只有具有指定标签的执行节点才能运行该作业。这样可以灵活地控制作业的执行位置,使得作业可以在特定类型的执行节点上运行。...deploy_job: script: - deploy_script.sh except: - develop 在上面的示例中,deploy_job作业在除了develop分支以外的所有情况下都会触发执行...可以是文件或者目录。在示例中,node_modules/表示缓存整个node_modules目录及其下的所有文件。...当作业设置为允许失败时,即使该作业执行失败,CI/CD流程也会继续执行,而不会中断整个流程。

    1.5K00

    你真的了解package.json吗?

    当我们运行该命令时,它会询问我们一系列的问题,我们输入的所有答案都会显示在我们的 package.json 文件中。...其键是我们可以使用 npm run 运行的脚本,值是实际运行的命令。这些通常是终端命令,我们将其放入脚本字段中,以便我们可以记录它们并轻松地重用它们。...我们还可以指定在软件包生命周期的不同时间运行的脚本。例如,我们可以添加一个 prepublish 脚本,在软件包发布之前运行(当我们运行 npm publish 时)。...运行 npm install --workspaces 将在两个目录中运行 npm install。 实际上,我们可以使用--workspaces 命令在指定的所有工作空间中运行任何脚本。...现在,如果在根目录中运行 npm run lint --workspaces --if-present,它将在所有具有 lint 脚本的工作空间中运行 lint 脚本。

    70710

    npm并行&串行执行多个scripts命令

    通过npm run 可以运行 package.json 中脚本,Npm 命令不能提供立即运行多个脚本的方式,同时运行需要打开多个终端窗口 npm scripts 问题 下述通过 Bash 来实现的 "...Bash:成功 exit 0;失败(非0) exit 1 Nodejs:成功 process.exit(0);失败(非0) process.exit(1) 先并行后串行?...npm-run-all 跨平台,一种可以并行或顺序运行多个 npm 脚本的 CLI 工具。...借助 scripts 生命周期事件关系 通过 npm-run-all 可以启发我们,可以通过 scripts 的一些属性关系来达到顺序执行。...因为内置的事件名称本身就有一定的特定意义 其他 目前社区还有类似的一些开源处理方式(shell-executor 、npm-parallel )等等,实现方式基本大同小异,感兴趣的小伙伴可自行查阅!

    2K20

    Gitlab-ci:从零开始的前端自动化部署

    每当你push/merge一次,gitlab-ci都会检查项目下有没有.gitlab-ci.yml文件,如果有,它会执行你在里面编写的脚本,并完整地走一遍从「intall =>」 「eslint检查=>...(4).gitlab-ci的所有流程都是可视化的,每个流程节点的状态可以在gitlab的交互界面上看到,包括执行成功或失败。...img 「script」 它是当前pipeline节点运行的shell脚本(以项目根目录为上下文执行)。...这个script是我们控制CI流程的核心,我们所有的工作:从安装,编译到部署都是通过script中定义的shell脚本来完成的。...默认是false,也就是如果当前Job因为报错而失败,则当前pipeline停止 如果是true,则即使当前Job失败,pipeline也会继续运行下去。

    2.3K50

    shell脚本对编码和行尾符敏感吗

    问: 我正在macOS上制作一个NW.js应用程序,并想通过双击图标在开发模式下运行该应用程序。在第一步中,我试图使我的shell脚本正常工作。...真正让我感到奇怪的是,它仍然运行应用程序(如果我手动执行npm install)…… 由于无法正常工作,并且怀疑文件本身有什么奇怪的地方,我直接在Mac上创建了一个新的文件,这次使用了vim。...是什么导致第一个脚本无法运行?我怎样才能知道? 答: 是的。Bash脚本对行结束很敏感,无论是在脚本本身还是在它处理的数据中。...你可以在命令cat -v yourfile的输出中看到这个不可见的字符: $ cat -v yourfile #!...有很多方法可以做到这一点: 1. 最简单的方法是使用 dos2unix 命令 dos2unix filename 2.

    57420

    react-native环境搭建的正确姿势

    运行下面的脚本即可: # js 版本号 NODE_VERSION=`node -v | cut -d'v' -f 2` # 下载源码包(使用镜像) wget http://npm.taobao.org...镜像 npm官方的源不稳定,我们可以使用国内淘宝的源http://registry.npm.taobao.org/ ;执行下面的命令即可: npm config set registry=http...遇到的问题 代理和V** V**和代理最大的区别是,V**对于应用程序就相当于V**躺在了TCP/IP协议栈里面,所有的网络请求都会通过V**访问;而代理呢,我们需要给每个要用到代理的程序单独设置代理访问...很不幸,即使这么做了,依然会出现有一些包下载不下来。看了官方文档才知道,npm设置代理不是这个样子的。要么在一个配置文件.npmrc里面设置,要么通过命令npm config set XXX设置。...实际上,我们使用的很多npm的包,用到了一些c/c++的模块,需要编译安装。这个时候,需要依赖node的源代码。但是,由于这个源本身的问题,有了代理速度还是乌龟一般。

    1.1K10

    从npm、npx说起,到shell

    每当执行 npm run,就会自动新建一个 Shell,在这个 Shell 里面执行指定的脚本命令。因此,只要是 Shell(一般是 Bash)可以运行的命令,就可以写在 npm 脚本里面。...这意味着,当前目录的 node_modules/.bin 子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。...npm 脚本的退出码,也遵守 Shell 脚本规则。如果退出码不是 0,npm 就认为这个脚本执行失败。...如果Command1命令运行失败,则继续运行Command2命令 命令 说明 echo 在屏幕输出一行文本,可以将该命令的参数原样输出 -n:可以取消末尾的回车符,使得下一个提示符紧跟在输出内容的后面...屏幕只显示运行结果,没有其他内容) set -e:使得脚本只要发生错误,就终止执行(彻底解决上述「错误处理」;不适用于管道命令) set -o:只要一个子命令失败,整个管道命令就失败,脚本就会终止执行

    4.4K20
    领券