0
votes

I'm using Linux. I'm trying to use gulp using Laravel 5.2. I've installed nodejs like that:

sudo apt-get install nodejs

I've also installed npm:

sudo apt-get install npm

I have the newest versions of both of them. But it doesn't create folder node_modules in root directory of my project. I've linked them - I've tried to check that:

sudo ln -s /usr/bin/nodejs /usr/bin/node ln: failed to create symbolic link ‘/usr/bin/node’: File exists

My packaage.json file is:

{
  "private": true,
  "scripts": {
    "prod": "gulp --production",
    "dev": "gulp watch"
  },
  "devDependencies": {
    "gulp": "^3.9.1",
    "laravel-elixir": "^5.0.0",
    "bootstrap-sass": "^3.0.0"
  }
}

Gulpfile.js is:

var elixir = require('laravel-elixir');

/*
 |--------------------------------------------------------------------------
 | Elixir Asset Management
 |--------------------------------------------------------------------------
 |
 | Elixir provides a clean, fluent API for defining some basic Gulp tasks
 | for your Laravel application. By default, we are compiling the Sass
 | file for our application, as well as publishing vendor resources.
 |
 */

elixir(function(mix) {
    mix.sass('app.scss');
});

My /resources/assets/css/app.scss file is:

 @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";

.container {
	color: purple;
}
h1 {
	color:green;
}
body {
	background-color: red;
	font-size:10px;
}

In my editor there is error: Can't resolve import into sass/scss file. because I don't have folder node_modules.

How to make that work? What I haven't done correct? When I run gulp

Thanks!

Edited: When I install npm:

sudo apt-get install npm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
npm is already the newest version.
The following packages were automatically installed and are no longer required:
  ant ant-optional antlr3 aspectj bsh javahelp2 junit junit-doc junit4
  junit4-doc libantlr-java libasm3-java libaspectj-java libbeansbinding-java
  libbetter-appframework-java libbindex-java libbsh-java libbytelist-java
  libcglib-java libcommons-codec-java libcommons-net1-java libeasymock-java
  libfelix-framework-java libfelix-main-java libflute-java libfreemarker-java
  libgeronimo-jpa-2.0-spec-java libgeronimo-osgi-support-java libhamcrest-java
  libini4j-java libjcodings-java libjemmy2-java libjetty-java libjline-java
  libjna-java libjoda-time-java libjsch-java libjvyamlb-java libjzlib-java
  liblucene2-java libnb-absolutelayout-java libnb-apisupport3-java
  libnb-ide14-java libnb-java5-java libnb-javaparser-java
  libnb-org-openide-modules-java libnb-org-openide-util-java
  libnb-org-openide-util-lookup-java libnb-platform-devel-java
  libnb-platform13-java libnetx-java liboro-java libosgi-compendium-java
  libosgi-core-java libosgi-foundation-ee-java libsac-java
  libsequence-library-java libserf-1-1 libservlet2.5-java
  libsimple-validation-java libslf4j-java libsqljet-java
  libstringtemplate-java libsvn-java libsvn1 libsvnclientadapter-java
  libsvnkit-java libswing-layout-java libswingx1-java libtrilead-ssh2-java
  libxerces2-java libxml-commons-external-java libxml-commons-resolver1.1-java
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 55 not upgraded.

And when I install npm:

sudo apt-get install nodejs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
nodejs is already the newest version.
nodejs set to manually installed.
The following packages were automatically installed and are no longer required:
  ant ant-optional antlr3 aspectj bsh javahelp2 junit junit-doc junit4
  junit4-doc libantlr-java libasm3-java libaspectj-java libbeansbinding-java
  libbetter-appframework-java libbindex-java libbsh-java libbytelist-java
  libcglib-java libcommons-codec-java libcommons-net1-java libeasymock-java
  libfelix-framework-java libfelix-main-java libflute-java libfreemarker-java
  libgeronimo-jpa-2.0-spec-java libgeronimo-osgi-support-java libhamcrest-java
  libini4j-java libjcodings-java libjemmy2-java libjetty-java libjline-java
  libjna-java libjoda-time-java libjsch-java libjvyamlb-java libjzlib-java
  liblucene2-java libnb-absolutelayout-java libnb-apisupport3-java
  libnb-ide14-java libnb-java5-java libnb-javaparser-java
  libnb-org-openide-modules-java libnb-org-openide-util-java
  libnb-org-openide-util-lookup-java libnb-platform-devel-java
  libnb-platform13-java libnetx-java liboro-java libosgi-compendium-java
  libosgi-core-java libosgi-foundation-ee-java libsac-java
  libsequence-library-java libserf-1-1 libservlet2.5-java
  libsimple-validation-java libslf4j-java libsqljet-java
  libstringtemplate-java libsvn-java libsvn1 libsvnclientadapter-java
  libsvnkit-java libswing-layout-java libswingx1-java libtrilead-ssh2-java
  libxerces2-java libxml-commons-external-java libxml-commons-resolver1.1-java
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 55 not upgraded.
1
you have to do npm install inside your project folderFabio Antunes
First, I've navigated to my project and then I ran these commands - it's inside my project.ivva
then just npm install or sudo npm install whichever works for youFabio Antunes
Look sudo apt-get install npm !== sudo npm installFabio Antunes
Just type this three words on your terminal sudo npm install and press enterFabio Antunes

1 Answers

2
votes

It sounds like You did not run npm install in the project directory. Doing that will create node-modules directory in the project directory.

Like mattferderer suggested in comment, just don't do sudo because it will install packages with sudo permissions, I don't think you would want that. ;)

Laravel will prefer local version of gulp (if you also installed the global one). Just letting you know bin will be hidden in $your_project_path/node_modules/.bin/gulp. Again make sure You run it from project directory where gulpfile.js exists.

If it will still won't work I suggest to remove and purge nodejs and follow instructions from official website to install it again (sometimes simple sudo apt-get install nodejs npm and linking won't work): https://nodejs.org/en/download/package-manager/