npm install local folder only installs node_modules - node.js

I want to install a local project by using "file:../project-name" in the package.json. However, when I run this command it only installs the dependencies of the local project (node_modules) and not the source files itself.
I have project-name/src for example and I expect it to appear in node_modules/project-name/src, but it doesn't.
I checked the .gitignore (I don't have a .npmignore file) and src as a folder is not excluded.
What am I not seeing here?

If you refer to the files property, this does not indicate files to copy to the node_modules on npm install, but it indicates the files to publish on npm publish.
Edit
When including a dependency with file:... in a project, the directory has to:
have a package.json
Declare exported files in the "files" property.

Related

why can't i hide the node_module file by .gitignore after applying node_modules/ or /node_modules on nodejs

My .gitignore file is on as the same root as .git folder
i have also tried out different format like 'node_modules/' '/node_modules'
though it's hiding my .env file.
But gitignore still not hiding my node_modules folder
I have also tried by uninstalling the node_modules > updated the .gitignore file > npm install. Still it doesn't work. What should i do now?
Try using node_modules/*
This will tell git to ignore all files and folders inside the node modules folder.
Also make sure to check it by adding a dependency and using the command
git status
It will give you a list of all changed files.
It may be because your git repository is already tracking your 'node_modules' folder. Try removing the folder and commiting the change, then reinstall your node modules with npm i. The folder should then remain untracked and will appear greyed out in VS Code.

npm prepare script not building folder in node modules

I am trying to use npm's prepare script to run a build step when npm installing from a different project.
The script does run during the npm install however, it doesn't build out the dist folder inside node modules.
Refer to this article for more details http://jim-nielsen.com/blog/2018/installing-and-building-an-npm-package-from-github/
I also had the same problem. My prepare script wasn't creating the build directory in the node_modules folder when installing as dependency.
Finally I found out that my .gitignore was the problem, which was setup to ignore the build directory for version control. NPM is inheriting the .gitignore file when no .npmignore can be found, which was the case here.
As stated on https://docs.npmjs.com/misc/developers:
If there’s no .npmignore file, but there is a .gitignore file, then npm will ignore the stuff matched by the .gitignore file
So I solved the problem by simply adding an empty .npmignore in the root.
I hate to provide such a simple answer, but my solution was to use npm install rather than yarn, which apparently doesn't run the prepare script properly.

How to configure node_modules folder location in npm project?

I have a node application in which I am using package.json file which on npm install make a node_modules folder inside the application folder which have all dependencies in it. I want to move node_modules folder out from application folder without causing the code break. Basically I want to manually configure the location of local node modules. How can I do that?

Running "npm install --save X" in folder without package.json file

I am writing a library and need to know what will happen if a user tries to run npm install -S X in their project before a package.json file exists.
I just tried this on Windows, and sure enough, NPM did not barf and went along with it's business but when the install command completed, there was still no node_modules folder nor a package.json file.
Does anyone know what is expected to happen? I assume I should require the users of my library to run "npm init" before running "npm install X" ?
Looks NPM does throw an error at the end of the install -
ENOENT: no such file or directory, open 'package.json'
but I wonder if that prevents the install process from create a node_modules dir, and actually putting the dependency in there.
npm install without the -g flag will walk up the folder tree checking for folders that contain either a package.json or a node_modules folder.
If either of those conditions are met, then that folder will be treated as the current directory for the purpose of the npm commands you are running. If no such folder is found, then the current folder is used.
As you noted, a node_modules folder will be created and after the package is loaded into the cache it will be unpacked into that folder.

npm not creating node_modules folder in project directory

I am doing a small Sinatra project and I want to use Gulp.
I have node(v0.12.0), npm(2.13.1), gulp(3.9.0) installed. I am in my project directory but when I try install a package like "npm install gulp-sass --save-dev", it doesn't create any "node_modules" folder in my project directory. It seems to be installing the package in my user home directory. Anything I am doing wrong?
From the npm documentation:
Starting at the $PWD, npm will walk up the folder tree checking for a folder that contains either a package.json file, or a node_modules folder. If such a thing is found, then that is treated as the effective "current directory" for the purpose of running npm commands. (This behavior is inspired by and similar to git's .git-folder seeking logic when running git commands in a working dir.)
If no package root is found, then the current folder is used.

Resources