Вам не нужно устанавливать глобальный веб-пакет для Jenkins. Добавьте в свой package.json в сценариях команду, запускающую локальный веб-пакет, например:
"scripts": {
"start": "webpack-dev-server --inline --hot",
"build": "webpack -p"
},
Теперь Дженкинс может запускать ваш скрипт сборки без установленного глобального веб-пакета:
npm run build
Таким образом, вы можете поддерживать несколько проектов с разными версиями webpack, и каждый проект может иметь свои собственные локальные зависимости.
Опора скриптов является частью проекта package.json. Package.json содержит все зависимости и зависимости от разработчиков (сборка, тестирование и т. Д.) Проекта. Используя package.json, запускающий NPM install на вашем компьютере сборки, вы можете установить локально (часть каталога проекта) все зависимости. Пример package.json для проекта angular, созданного с помощью webpack:
{
"name": "whatever",
"version": "1.2.0",
"description": "whatever",
"scripts": {
"start": "webpack-dev-server --inline --hot", // runs the dev server
"build": "webpack -p" // builds the release
},
"dependencies": { // the dependencies that are part of the actual release
"angular": "1.5.0",
"angular-animate": "1.5.0",
"angular-messages": "1.5.0",
"angular-ui-router": "0.2.15"
},
"devDependencies": { // build dependencies
"babel-core": "6.5.2",
"babel-eslint": "6.0.0-beta.1",
"babel-loader": "6.2.3",
"babel-preset-es2015": "6.5.0",
"babel-preset-stage-0": "6.5.0",
"css-loader": "0.23.1",
"file-loader": "0.8.5",
"html-loader": "0.4.3",
"html-webpack-plugin": "2.14.0",
"less-loader": "2.2.2",
"style-loader": "0.13.0",
"url-loader": "0.5.7",
"webpack": "1.12.14",
"webpack-dev-server": "1.14.1"
},
"license": "MIT"
}
Каждый раз, когда обновляется мастер git, Дженкинс извлекает последнюю фиксацию, очищает текущий каталог сборки, включая все зависимости, и запускает в папке проекта следующие команды: npm install
для локальной установки всех зависимостей как часть папки проекта npm run build
для сборки выпускать
Дженкинс не знает о веб-пакете или любом другом инструменте сборки или зависимости. Единственные вещи, которые устанавливаются на Jenkins глобально, - это nodejs и npm.
А вот простой сценарий bash, который запускает команды:
rm -rf node_modules || true // remove node_modules (all deps)
npm install // install all deps
npm run build // run the build script
person
Ori Drori
schedule
29.03.2016