使用本地部门运行 npm 脚本



目前我以这种方式使用本地 deps 运行 npm 脚本:

package.json:

  "scripts": {
    "test": "node ./node_modules/karma/bin/karma start",
    "node-test": "node ./node_modules/jasmine/bin/jasmine",
    "build": "node ./node_modules/gulp/bin/gulp build"
  },

我不想使用全局 deps,因为我可能忘记将 deps 添加到 package.json 中。这样,当缺少本地 dep 时,我会收到一条错误消息,我没有问题,因为某些 deps 未全局安装,例如业力插件。

有没有更好(更短(的方法来使用本地库定义 npm 脚本?这个特拉维斯兼容吗?

编辑:

如果不是很明显,我在全球范围内安装了相同的库,但我想使用这些项目的本地安装。这意味着当我用karma start启动业力时,全局安装的版本将启动业力服务器,这意味着如果我没有全局安装所有业力插件,那么我就会出错。

另一个问题是我有Windows,所以这里描述的解决方案:如何使用node_modules本地安装的软件包?不起作用。Windows 无法识别#!/bin/sh#!/usr/bin/env node头部部分,据我所知没有 sh 命令。至少不是在网络风暴终端中。Git bash 有 sh 命令,但我想从 webstorm 终端运行这些 npm 脚本。

一种可能的解决方案可能是以某种方式修复网络风暴,以便它可以从终端使用 sh。在那之后,我可以使用我假设的$(npm bin)。但这只是一个猜测。我不确定这是否可以做到。

npm 在执行使用 npm run 运行的命令之前,会自动将路径./node_modules/.bin添加到您的PATH环境(包括两个"魔术"快捷方式npm startnpm test(

npm 脚本文档

您可以通过以下方式进行设置:

"scripts": {
   "test": "karma start",
   "node-test": "jasmine",
   "build": "gulp build"
}

假设您在devDependenciesdependencies中列出了业力,茉莉花和gulp-cli(以便在执行npm install时安装它们(

是的,它是特拉维斯兼容的。下面是一个使用作为模块在本地安装的 tap travis 上测试的软件包示例:

https://github.com/scriptoLLC/couchdown/

最新更新