Пряжа устанавливает только список пакетов (ie не все зависимости проекта) - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь запустить скрипт в моем проекте на моем CI-сервере (действия github). Поскольку установка всех моих зависимостей занимает много времени, я хочу установить только часть моих зависимостей.

Я попробовал следующее:

# Bad solution1
yarn install # is not good for me because it install every dependencies = takes time

# Bad solution2
yarn add dependency1 dependency2 # idem

# Poor solution3
rm package.json yarn.lock
yarn add dependency1 dependency2 # would work but I have no garantie of keeping the same versions

Есть ли способ сделать это пряжей?

1 Ответ

0 голосов
/ 20 мая 2020

Раньше я решал эту проблему, объединяя скрипт и его зависимости с помощью rollup и фиксируя файл в репо.

Затем вы можете запустить сценарий на ci без установки с помощью node или yarn.

Вот пример файла rollup.config. js. Это для машинописного текста, но вы сможете собрать что-то подобное, если используете js. Вам необходимо установить накопительный пакет, а также плагины.

rollup.config. js

import typescript from "rollup-plugin-typescript2";
import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";

module.exports = {
  input: "src/my-script.ts",
  output: {
    file: "lib/my-script.js",
    format: "cjs"
  },
  plugins: [
    typescript({
      typescript: require("typescript"),
      module: "CommonJS"
    }),
    resolve(),
    commonjs({ extensions: [".js", ".ts"] })
  ]
};

Добавьте сценарий в свой пакет. json и запустите yarn build:

package. json

...
  "scripts": {
    "build": "rollup -c"
  },
...
...