Travis.ci 配置和执行 npm 脚本

Posted

技术标签:

【中文标题】Travis.ci 配置和执行 npm 脚本【英文标题】:Travis.ci config and execution of npm scripts 【发布时间】:2018-12-25 16:47:38 【问题描述】:

我正在尝试将 Travis 用于 PR 的开源构建。配置非常简单,日志似乎显示在运行yarn install 时安装了适当的模块,并且我正在安装与本地使用的相同版本的纱线。问题是当我尝试执行 package.json 脚本对象中定义的脚本时,在 Travis 中运行时找不到模块。以下是我在构建时收到的配置和错误。

before_install:
  - curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.7.0
  - export PATH="$HOME/.yarn/bin:$PATH"
cache:
  yarn: true
  directories:
    - "node_modules"
env:
  - NODE_ENV=production
language: node_js
node_js:
  - 8
  - 9
  - "stable"
install:
  - yarn install
script:
  - yarn run lint
  - yarn test

以上在构建日志中产生以下输出:

yarn run v1.7.0
$ ./node_modules/.bin/eslint src/**
/bin/sh: 1: ./node_modules/.bin/eslint: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

The command "yarn run lint" exited with 1.

0.54s$ yarn run test
yarn run v1.7.0
$ ./node_modules/.bin/jest
/bin/sh: 1: ./node_modules/.bin/jest: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

The command "yarn run test" exited with 1.

本项目的package.json如下:

"scripts": 
  "test": "./node_modules/.bin/jest",
  "lint": "./node_modules/.bin/eslint src/**",
  "precommit": "lint-staged",
  "format": "prettier --trailing-comma es5 --single-quote --write 'src/*/*.js' '!(node_modules)/**/*.js'"
,

【问题讨论】:

你找到解决方案了吗? 【参考方案1】:

遇到了同样的问题,并且能够通过在 package.json 文件中执行以下操作来解决它

      "scripts": 
           "test": "test --passWithNoTests",
             

【讨论】:

以上是关于Travis.ci 配置和执行 npm 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 travis ci 配置 SSH 连接?

使用 Travis CI 配置 Mysql 5.7

Travis CI 跳过测试(Gradle Android 项目)

为 iOS 建立 Travis CI

travis.ci 上的 Android 构建变体

如何在 Travis CI 上设置有效的自动化浏览器测试?