Forum Discussion

RobertT's avatar
7 years ago

How to Install the Lithium Community SDK on Windows

Hi All, 

 

After a bit of digging around, although not officially supported by Lithium yet I've worked out the process to install and use the Lithium Community SDK natively on Windows, the process is relatively straightforward as you'll see below, however it does take a little while for the dependencies to compile.

 

This works for Windows 7, 8 and 10:

 

  1. Install the latest stable version of NodeJS LTS (version 8.x) at the time of writing this post.
  2. Open Windows PowerShell as an Admin (right click and select Run as Administrator)
  3. run the following commands in powershell:
    1. npm install --production windows-build-tools  (note this will take a while to complete).

    2. npm install -g gulp 

    3. npm install -g lithium-sdk

 

After you finish the steps above, close PowerShell and re-open it as a regular user and you can continue to work as normal with the typical commands.

For more information see the Community SDK Documentation

  • I have been trying to install this on Ubuntu via WSL in windows 10 and when I found this I was like .. OMG Thank good...

     

    It crashes in the same places as Ubuntu does. 

     

     

     win_delay_load_hook.cc
    Done Building Project "C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\node-sass\build\bind
    ing.vcxproj" (default targets) -- FAILED.
    
    Done Building Project "C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\node-sass\build\bind
    ing.vcxproj.metaproj" (default targets) -- FAILED.
    
    Done Building Project "C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\node-sass\build\bind
    ing.sln" (default targets) -- FAILED.
    
    C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\node-sass\build\binding.sln" (default targ
    et) (1) ->
    "C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\node-sass\build\binding.vcxproj.metaproj"
    (default target) (2) ->
    "C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\node-sass\build\binding.vcxproj" (default
    target) (4) ->
    (ClCompile target) ->
      c:\users\v-allens\appdata\roaming\npm\node_modules\lithium-sdk\node_modules\node-sass\src\create_string.cpp(17): erro
    r C2664: 'v8::String::Utf8Value::Utf8Value(const v8::String::Utf8Value &)': cannot convert argument 1 from 'v8::Local<v
    8::Value>' to 'const v8::String::Utf8Value &' [C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modu
    les\node-sass\build\binding.vcxproj]
    
        14 Warning(s)
        1 Error(s)
    
    Time Elapsed 00:01:05.20
    gyp ERR! build error
    gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
    gyp ERR! stack     at ChildProcess.onExit (C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\node-gyp\lib\build.js:262:23)
    gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
    gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
    gyp ERR! System Windows_NT 10.0.20170
    gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\v-allens\\AppData\\Roaming\\npm\\node_modules\\lithium-sdk\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
    gyp ERR! cwd C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\node-sass
    gyp ERR! node -v v12.18.3
    gyp ERR! node-gyp -v v3.8.0
    
    • RobertT's avatar
      RobertT
      Boss

      Hi Allen, 

      Looking at the error it seems it's not happy with Visual Studio when it comes to the node-gyp dependency part of the build. Visual Studio 2017 and later cause some issues unfortunately.

      I think I've seen this before, if I remember correctly there is a workaround. Can you try running the following command:

      npm install --global --production windows-build-tools --vs2015

      following this re-run the command to install the Lithium-SDK

      npm install -g lithium-sdk

      Hopefully that should work.

       

      • Well now I am in the same place as the last poster.. Install finished (thanks RobertT ) but li create-project failes as it says primordials is not defined

         

        any thoughts?

         

        PS C:\Users\v-allens\Plugin> li create-project
        fs.js:36
        } = primordials;
            ^
        
        ReferenceError: primordials is not defined
            at fs.js:36:5
            at req_ (C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\natives\index.js:143:24)
            at Object.req [as require] (C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\natives\index.js:55:10)
            at Object.<anonymous> (C:\Users\v-allens\AppData\Roaming\npm\node_modules\lithium-sdk\node_modules\vinyl-fs\node_modules\graceful-fs\fs.js:1:37)
            at Module._compile (internal/modules/cjs/loader.js:1137:30)
            at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
            at Module.load (internal/modules/cjs/loader.js:985:32)
            at Function.Module._load (internal/modules/cjs/loader.js:878:14)
            at Module.require (internal/modules/cjs/loader.js:1025:19)
            at require (internal/modules/cjs/helpers.js:72:18)
  • Hi all,

     

    if like Denizbaby  you are having problems with rsync, and you have downloaded the cwrsync plugin mentioned by RobertT, be aware that the cwrsync package does not correctly install the cwrsync bin directory into windows 10 PATH variable.

    To fix this you need to put it there yourself.

    1. Download cwrsync - 64-bit version ; x86 version
    2. run the cwrsync file
    3. press the windows key and type 'env'
    4. Select 'Edit the system environment variables'
    5. click Environment variables at the bottom of the advanced tab that opens
    6. under system variables find Path and click it
    7. click edit or double click the path
    8. In the edit enviroment variable dialog click new
    9. you need to enter the full path to the bin folder which now exists in your cwrsync folder you just downloaded.
    10. Click ok
    11. Open Powershell
    12. type rsync --version

    If you get a version number you are done.

  • As per previous comments, this process appears to be fairly sensitive to the versions of nodejs and windows-build-tools that are used. Using the latest and greatest versions of these packages (as of April 2021) does not work. I have successfully used the following commands to get an operational installation. These steps explicitly specify older versions where needed :

     

    choco install rsync -y
    choco install nodejs-lts --version=10.24.1 -y
    npm install --production windows-build-tools --vs2015
    npm install -g gulp 
    npm install -g lithium-sdk

     

     

  • I've tried a couple times and gave up.

    Still doing my code like old times: copy and paste 🙂

  • This is not working for me. Do you have a working solution for installing the windows SDK.

  • Hi Team,

    We have installed all the required things in windows but when we run "npm install -g lithium-sdk" then we are getting the below error. Any help would be appreciated.

    Thank you.