Skip to main content

Distributing your npm package as an executable

Here are simple steps to setup your first npm package. You do not need to publish directly to npm repository instead you can push to git.
First thing you gotta do is - setup github.

a) Create a new repository and clone it to your local drive

b) Execute 'npm init'.

c) We will also use index.js as the default entry point. This means  we will create a file called "index.js" and it will host our modules, which might looks something like this. (Please note : You will need to add 

#! /usr/bin/env node 

as shown below, otherwise node will not be available. :-



d) Next, we need to edit our package.json and add the following


"preferGlobal": false,
"bin": {  "npmcalc": "./bin/index.js"

This additional properties basically tells node that we are going to get an executable called npmcalc and source located in a file called index.js under bin folder.

If you set 'preferGlobal' : true - you need to install npmcalc with a -g option, otherwise you might not be able to find the npmcalc itself.



It would look something as follows :-




e) Please git commit your code and push to master branch.

git commit

git push origin master


f) Next, lets try out by installing it from github.

npm install git://github.com/appcoreopc/npmcalc.git


g) From the command line, execute

npmcalc 10 10

Total result = 20





Comments

Popular posts from this blog

Android Programmatically apply style to your view

Applying style to your view (button in this case) dynamically is pretty easy. All you have to do is place the following in your layout folder (res/layout)
Let's call this file : buttonstyle.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape> <solid android:color="#449def" /> <stroke android:width="1dp" android:color="#2f6699" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startColor="#449def" a…

OpenCover code coverage for .Net Core

I know there are many post out there getting code coverage for .dotnetcore. I'm using opencover to address this needs.

In case, you do no want to use opencover and wanted to stick with vs2015 code coverage, you can try to copy Microsoft.VisualStudio.CodeCoverage.Shim.dll from C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\coreclr\ and drop it into your project "bin\Debug\netcoreapp1.0" folder.  Please note : you need to be on VS2015 Enterprise to do this. 

To get started, I guess we need to add OpenCover and ReportGenerator for our test projects, as shown in diagram below :-



When nuget packge gets restored, we will have some binaries downloaded to our machine and we going to use this to generate some statistics. I think the biggest issue is to getting those command lines work.

In dotnetcore, we run test project using "dotnet test" (assuming you are in the test project folder - if not please go there)  So we add this …

DataTable does not have AsEnumerable

I have problem locating my AsEnumerable extension method in my DataTabe (System.Data). Thank god for this post by Angel
(http://blogs.msdn.com/angelsb/archive/2007/02/23/does-not-contain-a-definition-for.aspx)

I was able to find this method once i have added reference to the following assembly.

C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.dll

Try to do a dummy Build and you should be able to get it.