Раньше я решал эту проблему, объединяя скрипт и его зависимости с помощью 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"
},
...