I’m back with another revamped dinner recipe that’s packed with veggies and fresh, amazing flavors you’ll fall in love with. I first made this roasted vegetable pasta back in 2018 and absolutely fell in love. A rainbow of roasted veggies, homemade cashew pesto, and a sprinkle of tangy goat cheese — dream come true!
This pasta was my effort to please Tony’s pasta-loving taste buds and still satisfy my craving for veggies. After I made it I put it into a tupperware for Tony to find and guess what? A day later a few pieces of roasted zucchini and two curly pasta pieces remain. #TYPICAL
It’s truly the perfect vegetarian dinner or lunch to make for the week, and also makes a great side dish for potlucks and parties. I love it hot or cold, and you know I included plenty of ways to customize it throughout the post. Enjoy!
Everything you’ll need to make delicious roasted vegetable pasta
This CRAZY GOOD ROASTED RAINBOW VEGETABLE PASTA has goat cheese and a creamy cashew pesto you’ll want to add to everything. Here’s everything you’ll need:
- Veggies: we’re using eggplant, zucchini, red bell pepper, yellow bell pepper, red onion and grape tomatoes (if you’d like) but you can mix and match based on what you have in your fridge, too!
- Oil: you’ll want avocado oil or olive oil for roasting up those delicious veggies.
- Seasonings: just a bit of garlic powder, salt & pepper throughout the recipe.
- Cashews: feel free to use raw cashew or cashew butter for the base of the delicious cashew pesto.
- Basil leaves: for that fresh pesto flavor.
- Pasta: I love using cellentani or cavatappi (these little swirls) but you can use any type of pasta you’d like, including whole wheat or gluten free pasta.
- Goat cheese: a bit of goat cheese adds an irresistible creamy, tangy flavor to the pasta.
Customize your pasta
There are tons of fun and delicious ways to really make this easy roasted veggie pasta dish your own! Here’s what I can recommend:
- Choose your veggies. Roasted broccoli, mushrooms and/or brussels sprouts would also be delicious. When winter hits try this recipe with roasted squash! Feel free to stir in spinach for an extra boost of greens, too, and add Mediterranean flavor by mixing in olives or feta instead of goat cheese — you do you.
- Pick your cheese. I love the tangy flavor of goat cheese, but this pasta would also be delicious with crumbled feta.
- Add protein. This roasted veggie pasta packs over 10g of protein per serving, but is the perfect base for your fav extra proteins. Keep it vegetarian by adding a can of chickpeas, or mix in grilled or baked chicken or shrimp!
- Go vegan. Feel free to omit the goat cheese crumbles to keep the pasta vegan and dairy free.
Can I use a different grain?
Sure! You can choose any pasta shape you’d like (even gluten free, as I mentioned) or you can try this recipe with quinoa, farro or pearl couscous. Note using quinoa would keep the recipe gluten free, too.
Perfect roasted veggie pasta in 4 steps
- Roast your veggies. Preheat your oven and divide the veggies between two trays lined with parchment paper. Drizzle each with olive oil and a sprinkle garlic powder and salt and pepper. Toss everything together, then spread out evenly on each pan and roast. Stir the veggies and rotate the pan halfway through the baking time.
- Make the pesto. While the veggies are roasting, you can make the pesto: add the following to the bowl of a food processor or high powered blender: cashews, basil avocado/olive oil, salt and water to thin. Process until thick, but smooth. Set aside.
- Cook the pasta. Next, cook the noodles according to the directions on the package until it’s al dente. Drain, then add back to the pot.
- Toss together & serve. Add the pesto, roasted veggies and half of the goat cheese to the pasta. Divide into bowls or meal prep containers, garnish with remaining goat cheese and extra basil leaves. Then serve & devour!
See how to make the roasted vegetable pasta
Looking to grill the vegetables?
You can! Fire up the grill this season and get all of my best tips & tricks for grilling vegetables here. Once they’re grilled, add them to the recipe as written and enjoy!
Make it extra creamy
After you cook your pasta, reserve a few tablespoons of the starchy pasta water and add it to the homemade pesto. That will create an extra creamy pesto sauce and be even more delicious when you mix it all together with the goat cheese.
How to store this roasted vegetable pasta
Store this healthy roasted veggie pasta in an airtight container in the refrigerator for up to 4-5 days. It’s delicious eaten hot or cold, so feel free to dig in straight from the fridge or warm it up a bit in the microwave!
More pasta recipes you’ll love
Get all of my pasta recipes here!
If you make this healthy mediterranean pasta recipe be sure to tag #ambitiouskitchen on Instagram so I can see your creation! You can also leave a comment below and rate the recipe. Thank you for making AK recipes!
Roasted Rainbow Vegetable Pasta with Cashew Pesto + Goat Cheese
Bright and flavorful roasted vegetable pasta with flavorful, homemade cashew pesto and creamy goat cheese. This easy roasted veggie pasta recipe is packed with fresh, colorful vegetables and perfect served warm or cold as a pasta salad. Options to grill the veggies and add your fav proteins!
- For the veggies:
-
1
baby eggplant, sliced and quartered (or sub 1 zucchini) -
1
medium zucchini, sliced and quartered -
1
red bell pepper, cut into chunks -
1
yellow bell pepper, cut into chunks -
1
red onion, cut into chunks - Optional: 1 package grape tomatoes
-
2
tablespoons
avocado oil or olive oil -
1
teaspoon
garlic powder - Freshly ground salt and pepper
- For the cashew pesto:
-
1/3
cup
roasted or raw cashews OR 2 tablespoons cashew butter -
1
cup
basil leaves (from 1 oz package) -
2-3
tablespoons
avocado oil or olive oil -
½
teaspoon
salt -
2-3
tablespoons
warm water, to thin pesto - For the pasta:
-
2 ½
cups
(8 ounce) cellentani pasta (or pasta of choice — can use whole wheat or gluten free) -
½
cup
goat cheese crumbles, divided
Preheat oven to 400 degrees F. Line two large baking sheets with parchment paper. Divide the veggies between two trays, then drizzle each with 1 tablespoon of oil and a sprinkle garlic powder and salt and pepper, to taste.
Toss together to coat the veggies, then spread out evenly on each pan. Roast for 15 minutes, then stir the veggies and rotate the pans and bake for 15-20 minutes more until veggies are tender.
While the veggies are roasting, you can make the pesto: add the following to the bowl of a food processor or high powered blender: cashews, basil avocado/olive oil, salt and water to thin. Process until thick, but smooth. Set aside.
Next, cook the pasta according to the directions on the package until it’s al dente. Drain, then add back to the pot.
Fold in the pesto, roasted veggies and half of the goat cheese. Divide into bowls or meal prep containers, garnish with remaining goat cheese and extra basil leaves, if desired. Serves 4 as a meal and 6 as a side.
This is a great dish for leftovers or meal prepping. See the full post for ways to customize and to add your favorite proteins!
To store: store this roasted veggie mediterranean pasta in an airtight container in the refrigerator for up to 4-5 days. It’s delicious eaten hot or cold, so feel free to dig in straight from the fridge or warm it up a bit in the microwave!
Nutrition
Servings: 4 servings
Serving size: 1 serving
Calories: 498kcal
Fat: 21.8g
Saturated fat: 4.7g
Carbohydrates: 65.4g
Fiber: 7.8g
Sugar: 11.4g
Protein: 13.4g
Recipe by: Monique Volz // Ambitious Kitchen | Photography by: Eat Love Eats
This post was originally published on January 29th, 2018, and republished on March 29th, 2022.
Shop This Post
Download My FREE 7-Day Meal Plan
Download My FREE 7-Day Meal Plan
Join the AK email list and get my brand new, FREE Simple & Nourishing 7-day Meal Plan delivered to your inbox.
“;
element.insertAdjacentHTML(position, tag);
}
return document.getElementById(id);
};
ClsDynamicAdsInjector.prototype._repeatDynamicAds = function (dynamicAd) {
var repeatedDynamicAds = [];
var maxLazySequence = dynamicAd.lazy ? defaultTo(this.locationMaxLazySequence.get(dynamicAd.location), 0) : 0;
var initialMax = Math.max(dynamicAd.min, dynamicAd.max);
var lazyMax = maxLazySequence === 0 && dynamicAd.lazy
? initialMax + dynamicAd.lazyMax
: Math.min(Math.max(maxLazySequence – dynamicAd.sequence + 1, 0), initialMax + dynamicAd.lazyMax);
var max = Math.max(initialMax, lazyMax);
for (var dynamicSequence = 0; dynamicSequence = initialMax;
repeatedDynamicAds.push(__assign(__assign({}, dynamicAd), { sequence: sequence, lazy: lazy }));
}
return repeatedDynamicAds;
};
ClsDynamicAdsInjector.prototype._locationEnabled = function (dynamicAdUnit) {
var clsEnabledLocation = this._clsOptions.enabledLocations.indexOf(dynamicAdUnit.location) !== -1;
var allLocationsDisabled = (this._clsOptions.disableAds && this._clsOptions.disableAds.all) || document.body.classList.contains(‘adthrive-disable-all’);
var contentEnabled = !document.body.classList.contains(‘adthrive-disable-content’) && !this._clsOptions.disableAds.reasons.has(‘content_plugin’);
return clsEnabledLocation && !allLocationsDisabled && contentEnabled;
};
return ClsDynamicAdsInjector;
}());
var VideoAdUnit;
(function (VideoAdUnit) {
VideoAdUnit[“Video_Collapse_Autoplay_SoundOff”] = “Video_Collapse_Autoplay_SoundOff”;
VideoAdUnit[“Video_Individual_Autoplay_SOff”] = “Video_Individual_Autoplay_SOff”;
VideoAdUnit[“Video_Coll_SOff_Smartphone”] = “Video_Coll_SOff_Smartphone”;
VideoAdUnit[“Video_In_Post_ClicktoPlay_SoundOn”] = “Video_In-Post_ClicktoPlay_SoundOn”;
})(VideoAdUnit || (VideoAdUnit = {}));
var PinterestReplacedPlayer;
(function (PinterestReplacedPlayer) {
PinterestReplacedPlayer[“StickySekindo”] = “stickySekindo”;
PinterestReplacedPlayer[“StaticSekindo”] = “staticSekindo”;
PinterestReplacedPlayer[“None”] = “none”;
})(PinterestReplacedPlayer || (PinterestReplacedPlayer = {}));
var SekindoHoldoutExperiment = (function (_super) {
__extends$1(SekindoHoldoutExperiment, _super);
function SekindoHoldoutExperiment() {
var _this = _super.call(this) || this;
_this.key = ‘sekho’;
_this._result = false;
_this._choices = [{ choice: true }, { choice: false }];
_this._result = _this.run();
_this.setExperimentKey();
logger$1.info(‘ClsSekindoHoldoutExperiment’, ‘result’, _this._result);
return _this;
}
Object.defineProperty(SekindoHoldoutExperiment.prototype, “result”, {
get: function () {
return this._result;
},
enumerable: false,
configurable: true
});
SekindoHoldoutExperiment.prototype.run = function () {
return new BernoulliTrial(0.05).get();
};
return SekindoHoldoutExperiment;
}(PluginExperiment));
var Component = (function () {
function Component() {
}
Object.defineProperty(Component.prototype, “enabled”, {
get: function () {
return true;
},
enumerable: false,
configurable: true
});
return Component;
}());
var VideoBase = (function (_super) {
__extends$1(VideoBase, _super);
function VideoBase(_videoConfig, sekindoHoldoutExperimentResult, _component) {
var _this = _super.call(this) || this;
_this._videoConfig = _videoConfig;
_this._component = _component;
_this._stickyRelatedOnPage = false;
_this._contextualMediaIds = [];
var players = _this._videoConfig.players || [];
_this._device = isDesktop() ? ‘desktop’ : ‘mobile’;
_this._potentialPlayerMap = _this._setPotentialPlayerMap(sekindoHoldoutExperimentResult);
var stationaryRelated = players.filter(function (player) { return player.type === “stationaryRelated” && player.enabled; });
_this._potentialPlayerMap.stationaryRelated = stationaryRelated;
return _this;
}
VideoBase.prototype._setPotentialPlayerMap = function (sekindoHoldoutExperimentResult) {
var _this = this;
var players = this._videoConfig.players;
var defaultMap = {
stickyRelated: [],
stickyPlaylist: [],
sekindo: [],
stationaryRelated: [],
};
return players && players.length
? players
.filter(function (player) { var _a; return ((_a = player.devices) === null || _a === void 0 ? void 0 : _a.indexOf(_this._device)) > -1; })
.reduce(function (accumulator, player) {
if (!accumulator[player.type]) {
logger.event(_this._component, ‘constructor’, ‘Unknown Video Player Type detected’, player.type);
accumulator[player.type] = [];
}
if (player.enabled) {
if (!sekindoHoldoutExperimentResult || player.type !== “sekindo” ) {
accumulator[player.type].push(player);
}
}
return accumulator;
}, defaultMap)
: defaultMap;
};
VideoBase.prototype._checkPlayerSelectorOnPage = function (playerType) {
var _this = this;
var players = this._potentialPlayerMap[playerType].map(function (player) {
return {
player: player,
playerElement: _this._getPlacementElement(player),
};
});
if (!players.length) {
return { player: null, playerElement: null };
}
return players[0];
};
VideoBase.prototype._getOverrideElement = function (player, playerElement, publisherPageElement) {
if (player && playerElement) {
var div = document.createElement(‘div’);
playerElement.insertAdjacentElement(player.position, div);
publisherPageElement = div;
logger.info(this._component, ‘_initializeRelatedPlayers’, ‘Changing injection element’, publisherPageElement);
}
else {
var _a = this._checkPlayerSelectorOnPage(“stickyPlaylist” ), stickyPlaylistPlayer = _a.player, stickyPlaylistElement = _a.playerElement;
if (stickyPlaylistPlayer && stickyPlaylistElement) {
var div = document.createElement(‘div’);
stickyPlaylistElement.insertAdjacentElement(stickyPlaylistPlayer.position, div);
publisherPageElement = div;
logger.info(this._component, ‘_initializeRelatedPlayers’, ‘Changing injection element’, publisherPageElement);
}
}
return publisherPageElement;
};
VideoBase.prototype._shouldOverrideElement = function (element) {
var overrideEmbed = element.getAttribute(‘override-embed’);
if (overrideEmbed === ‘true’ || overrideEmbed === ‘false’) {
return overrideEmbed === ‘true’;
}
return this._videoConfig.contextualSettings ? this._videoConfig.contextualSettings.overrideEmbedLocation : false;
};
VideoBase.prototype._getPlacementElement = function (settings) {
var pageSelectorEl = allowablePageSelector(settings.pageSelector);
var elementSelectorEl = validCssSelector(settings.elementSelector);
if (!pageSelectorEl.valid) {
logger.error(‘VideoUtils’, ‘getPlacementElement’, new Error(settings.pageSelector + ” is not a valid selector”));
return null;
}
if (settings.pageSelector && !pageSelectorEl.elements.length) {
logger.error(‘VideoUtils’, ‘getPlacementElement’, new Error(“PSNF: ” + settings.pageSelector + ” does not exist on the page”));
return null;
}
if (!elementSelectorEl.valid) {
logger.error(‘VideoUtils’, ‘getPlacementElement’, new Error(settings.elementSelector + ” is not a valid selector”));
return null;
}
if (elementSelectorEl.elements.length > settings.skip) {
return elementSelectorEl.elements[settings.skip];
}
else {
logger.error(‘VideoUtils’, ‘getPlacementElement’, new Error(“ESNF: ” + settings.elementSelector + ” does not exist on the page”));
return null;
}
};
VideoBase.prototype._getEmbeddedPlayerType = function (element) {
var embeddedPlayerType = element.getAttribute(‘data-player-type’);
if (!embeddedPlayerType || embeddedPlayerType === ‘default’) {
embeddedPlayerType = this._videoConfig.contextualSettings ? this._videoConfig.contextualSettings.defaultPlayerType : ‘static’;
}
if (this._stickyRelatedOnPage) {
embeddedPlayerType = ‘static’;
}
return embeddedPlayerType;
};
VideoBase.prototype._getUnusedMediaId = function (publisherPageElement) {
var mediaId = publisherPageElement.getAttribute(‘data-video-id’);
if (mediaId && this._contextualMediaIds.indexOf(mediaId) === -1) {
this._contextualMediaIds.push(mediaId);
return mediaId;
}
else {
logger.info(this._component, ‘_getUnusedMediaId’, ‘No Unique MediaId’);
return false;
}
};
VideoBase.prototype._createRelatedPlayer = function (mediaId, embeddedPlayerType, publisherPageElement) {
if (embeddedPlayerType === ‘collapse’) {
this._createCollapsePlayer(mediaId, publisherPageElement);
}
else if (embeddedPlayerType === ‘static’) {
this._createStaticPlayer(mediaId, publisherPageElement);
}
};
VideoBase.prototype._createCollapsePlayer = function (mediaId, publisherPageElement) {
var _a = this._checkPlayerSelectorOnPage(“stickyRelated” ), stickyRelatedPlayer = _a.player, stickyRelatedElement = _a.playerElement;
var player = stickyRelatedPlayer ? stickyRelatedPlayer : this._potentialPlayerMap[“stationaryRelated” ][0];
if (player && player.playerId) {
var shouldOverrideElement = this._shouldOverrideElement(publisherPageElement);
if (shouldOverrideElement) {
publisherPageElement = this._getOverrideElement(stickyRelatedPlayer, stickyRelatedElement, publisherPageElement);
}
publisherPageElement = document.querySelector(“#cls-video-container-” + mediaId + ” > div”) || publisherPageElement;
this._createStickyRelatedPlayer(__assign(__assign({}, player), { mediaId: mediaId }), publisherPageElement);
}
else {
logger.error(this._component, ‘_createCollapsePlayer’, ‘No video player found’);
}
};
VideoBase.prototype._createStaticPlayer = function (mediaId, publisherPageElement) {
if (this._potentialPlayerMap[“stationaryRelated” ].length && this._potentialPlayerMap[“stationaryRelated” ][0].playerId) {
var player = this._potentialPlayerMap[“stationaryRelated” ][0];
this._createStationaryRelatedPlayer(__assign(__assign({}, player), { mediaId: mediaId }), publisherPageElement);
}
else {
logger.error(this._component, ‘_createStaticPlayer’, ‘No video player found’);
}
};
VideoBase.prototype._shouldRunAutoplayPlayers = function () {
if (this._isVideoAllowedOnPage()) {
if (this._potentialPlayerMap[“stickyRelated” ].length ||
this._potentialPlayerMap[“stickyPlaylist” ].length ||
this._potentialPlayerMap[“sekindo” ].length) {
return true;
}
}
return false;
};
VideoBase.prototype._determineAutoplayPlayers = function () {
var componentName = this._component;
var isVideoManagerComponent = componentName === ‘VideoManagerComponent’;
var config = this._config;
if (this._stickyRelatedOnPage) {
logger.event(componentName, ‘stickyRelatedOnPage’, (isVideoManagerComponent && {
device: config && config.context.device,
isDesktop: this._device,
}) ||
{});
return;
}
var _a = this._checkPlayerSelectorOnPage(“stickyPlaylist” ), stickyPlaylistPlayer = _a.player, stickyPlaylistElement = _a.playerElement;
var _b = this._checkPlayerSelectorOnPage(“sekindo” ), sekindoPlayer = _b.player, sekindoElement = _b.playerElement;
if (stickyPlaylistPlayer && stickyPlaylistPlayer.playerId && stickyPlaylistPlayer.playlistId && stickyPlaylistElement) {
this._createPlaylistPlayer(stickyPlaylistPlayer, stickyPlaylistElement);
}
else if (sekindoPlayer && sekindoPlayer.playlistId && sekindoElement) {
this._createSekindoPlayer(sekindoPlayer, sekindoElement);
}
else {
logger.event(componentName, ‘noStickyPlaylistOrSekindo’, (isVideoManagerComponent && {
vendor: ‘none’,
device: config && config.context.device,
isDesktop: this._device,
}) ||
{});
}
};
VideoBase.prototype._initializeRelatedPlayers = function (publisherPageElements) {
for (var t = 0; t Adding Stationary Related Player Container”);
this._wrapJWPlayerWithCLS(element, player.mediaId);
this._playersAddedFromPlugin.push(player.mediaId);
}
};
ClsVideoInsertion.prototype._createStickyRelatedPlayer = function (player, element) {
this._device === ‘mobile’ ? [400, 225] : [640, 360];
VideoAdUnit.Video_Individual_Autoplay_SOff;
this._stickyRelatedOnPage = true;
this._videoConfig.mobileStickyPlayerOnPage = this._device === ‘mobile’;
if (element && player.position && player.mediaId) {
logger$1.info(‘ClsVideoInsertion’, ‘_createStickyRelatedPlayer’, “Video > Adding Sticky Related OnPage Player Container”);
var playerContainer = document.createElement(‘div’);
element.insertAdjacentElement(player.position, playerContainer);
var title = document.createElement(‘h3′);
title.style.margin = ’10px 0’;
var titleHeight = this._getTitleHeight(title);
this._wrapJWPlayerWithCLS(playerContainer, player.mediaId, this._WRAPPER_BAR_HEIGHT + titleHeight);
this._playersAddedFromPlugin.push(player.mediaId);
}
};
ClsVideoInsertion.prototype._createSekindoPlayer = function (player, element) {
var playlistId = player.playlistId;
__assign(__assign({}, player), { classNames: [] });
var playerSize = this._device === ‘mobile’ ? { width: 340, height: 260 } : { width: 320, height: 250 };
logger$1.info(‘ClsVideoInsertion’, ‘_createSekindoPlayer’, “Video > Adding Sekindo Player Container”);
var clsWrapper = this._createSekindoCLSWrapper(playerSize.height, playlistId);
element.insertAdjacentElement(player.position, clsWrapper);
this._playersAddedFromPlugin.push(playlistId);
};
ClsVideoInsertion.prototype._createPlaylistPlayer = function (player, element) {
var playlistId = player.playlistId;
this._videoConfig.mobileStickyPlayerOnPage = true;
var playerContainer = document.createElement(‘div’);
element.insertAdjacentElement(player.position, playerContainer);
logger$1.info(‘ClsVideoInsertion’, ‘_createPlaylistPlayer’, “Video > Adding Playlist Player Container”);
this._wrapJWPlayerWithCLS(playerContainer, playlistId, this._WRAPPER_BAR_HEIGHT);
this._playersAddedFromPlugin.push(“playlist-” + playlistId);
};
ClsVideoInsertion.prototype._isVideoAllowedOnPage = function () {
var disableAds = this._clsOptions.disableAds;
if (disableAds && disableAds.video) {
logger$1.info(‘ClsVideoInsertionMigrated’, ‘isVideoAllowedOnPage’, ‘Video > Non in post players are disabled on page’);
var disableAdsReason = ”;
if (disableAds.reasons.has(‘video_tag’)) {
disableAdsReason = ‘video tag’;
}
else if (disableAds.reasons.has(‘video_plugin’)) {
disableAdsReason = ‘video plugin’;
}
else if (disableAds.reasons.has(‘video_page’)) {
disableAdsReason = ‘command queue’;
}
var loggedClassName = disableAdsReason ? ‘ClsVideoInsertionMigrated’ : ‘ClsVideoInsertion’;
logger$1.error(loggedClassName, ‘isVideoAllowedOnPage’, new Error(“DBP: Disabled by publisher via ” + (disableAdsReason || ‘other’)));
return false;
}
if (this._clsOptions.videoDisabledFromPlugin) {
return false;
}
return true;
};
return ClsVideoInsertion;
}(VideoBase));
(function () {
var clsOptions = new ClsOptions();
if (!clsOptions || !clsOptions.enabled) {
return;
}
new ClsDynamicAdsInjector(clsOptions, new TargetDensityExperiment()).start();
new ClsVideoInsertion(new Video(clsOptions), clsOptions).init();
})();
})();