JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2687
  • Score
    100M100P100Q120887F
  • License ISC

A dotnet command line interface for gulp

Package Exports

  • gulp-dotnet-cli

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (gulp-dotnet-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Coverage Status Build Status Maintainability npm

gulp-dotnet-cli

gulp plugin for the dotnet cli.

You can view our Api docs, or read this blog post

Each interface in the docs should describe the objects you must pass in. For example IBuildModel is the interface containing the declaration of options for the build action.

Usage

You must have the dotnet cli installed and on your path.

First, install gulp-dotnet-cli

npm install --save-dev gulp-dotnet-cli

Then add it to your gulpfile.js

Simple Example:

let {clean, restore, build, test, pack, publish, run} = require('gulp-dotnet-cli');
let gulp = require('gulp');
//clean
gulp.task('clean', ()=>{
    return gulp.src('**/*.csproj', {read: false})
            .pipe(clean());
});
//restore nuget packages
gulp.task('restore', ()=>{
    return gulp.src('**/*.csproj', {read: false})
            .pipe(restore());
});
//compile
gulp.task('build', ['restore'], ()=>{
                    //this could be **/*.sln if you wanted to build solutions
    return gulp.src('**/*.csproj', {read: false})
        .pipe(build());
});
//run unit tests
gulp.task('test', ['build'], ()=>{
    return gulp.src('**/*test*.csproj', {read: false})
        .pipe(test())
});
//compile and publish an application to the local filesystem
gulp.task('publish', ['test'], ()=>{
    return gulp.src('src/TestWebProject.csproj', {read: false})
                .pipe(publish({configuration: 'Release'}));
});
//run
gulp.task('run', ()=>{
    return gulp.src('src/TestWebProject.csproj', {read: false})
            .pipe(run());
});

More Complicated example:

let {clean, restore, build, test, pack, publish, run} = require('gulp-dotnet-cli');
let version = `1.3.` + (process.env.BUILD_NUMBER || '0');
let configuration = process.env.BUILD_CONFIGURATION || 'Release';
let gulp = require('gulp');
//clean
gulp.task('clean', ()=>{
    return gulp.src('**/*.csproj', {read: false})
            .pipe(clean());
});
//restore nuget packages
gulp.task('restore', ()=>{
    return gulp.src('**/*.csproj', {read: false})
            .pipe(restore());
});
//compile
gulp.task('build', ['restore'], ()=>{
                    //this could be **/*.sln if you wanted to build solutions
    return gulp.src('**/*.csproj', {read: false})
        .pipe(build({configuration: configuration, version: version}));
});
//run unit tests
gulp.task('test', ['build'], ()=>{
    return gulp.src('**/*test*.csproj', {read: false})
        .pipe(test())
});
//compile and publish an application to the local filesystem
gulp.task('publish', ['test'], ()=>{
    return gulp.src('src/TestWebProject.csproj', {read: false})
                .pipe(publish({configuration: configuration, version: version}));
});
//convert a project to a nuget package
gulp.task('pack', ['build'], ()=>{
    return gulp.src('**/TestLibrary.csproj', {read: false})
                .pipe(pack({
                            output: path.join(process.cwd(), 'nupkgs') , 
                            version: version
                            }));
});
//push nuget packages to a server
gulp.task('push', ['pack'], ()=>{
    return gulp.src('nupkgs/*.nupkg', {read: false})
                .pipe(push({
                    apiKey: process.env.NUGET_API_KEY, 
                    source: 'https://myget.org/f/myfeedurl'}));
});
//run
gulp.task('run', ()=>{
    return gulp.src('src/TestWebProject.csproj', {read: false})
                .pipe(run());
});

You can find a working example in our test directory

Generating docs

You can generate new docs to host by running yarn run docs or npm run docs. The docs folder is tracked with git lfs, you must have it installed if you wish to update the docs folder.