Reputation: 6222
I'm just getting started with webpack and am having difficulty getting the multiple-entry-points sample to build. The webpack.config.js file in the example includes the line
var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin");
which fails for me with the error
Error: Cannot find module '../../lib/optimize/CommonsChunkPlugin'
Searching around, I found other examples of using the CommonsChunkPlugin with the expression
var commonsPlugin = new webpack.optimize.CommonsChunkPlugin("common.js");
which fails with the error
ReferenceError: webpack is not defined
Some more searching found a number of examples including
var webpack = require('webpack');
and my build now fails with
Error: Cannot find module 'webpack'
I'm at a loss as to how to proceed.
Upvotes: 241
Views: 510721
Reputation: 741
I resolved this issue simply running this command:
npm install webpack --save-dev
Upvotes: 1
Reputation: 2515
I solved the same problem by reinstalling, execute these commands
rm -rf node_modules
rm -f package-lock.json
npm install
rm
is always a dangerous command, especially with -f
, please notice that before executing it!!!!!
Upvotes: 104
Reputation: 99
rm -rf node_modules
rm -rf package.json-lock
npm install --force or npm install --legacy-peer-deps
Upvotes: 2
Reputation: 21
What solved it for me was that the path to webpack.config
was wrong in build.js
Upvotes: 0
Reputation: 619
So there are quite few possible issues, in my case on windows:
I moved my project to a folder with an &
in the name, which is fine for windows but it break npm. My solution was to remove the &
from the name.
test&mocking
-> test_and_mocking
Upvotes: 0
Reputation: 671
Laravel Users
If none of the above options work for you, then you probably need to install Laravel-mix correctly. Here is how:
npm install laravel-mix --save-dev
Now create a webpack.mix.js
file using this command:
touch webpack.mix.js
Add this code into your webpack.mix.js
file:
mix.js('resources/js/app.js', 'public/js').postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
require('tailwindcss'),
require('autoprefixer'),
]);
You probably will also need to create a tailwind.config.js
file using the command touch tailwind.config.js
and then add this code ainto it:
module.exports = {
content: [
'./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php',
'./storage/framework/views/*.php',
'./resources/views/**/*.blade.php',
],
theme: {
extend: {
fontFamily: {
sans: ['Nunito', ...defaultTheme.fontFamily.sans],
},
},
},
plugins: [require('@tailwindcss/forms')],
};
Finally run npm run dev
Upvotes: 0
Reputation: 61724
While the suggested solution (npm link webpack
) worked locally, on my CI (GitHub actions) I had the same problem, and to resolve it I used:
npm i --save-dev webpack
Upvotes: 0
Reputation: 89
In my case helped me changing the parent folder name and remove some &
from this name, you can also try changing the name or folder where you keep your code.
Upvotes: 1
Reputation: 7418
Link globally installed package to your project:
npm link webpack
Checkout the official documentation of yarn link
.
Upvotes: 403
Reputation: 2156
If you have installed a node package and are still getting message that the package is undefined, you might have an issue with the PATH linking to the binary. Just to clarify a binary and executable essentially do the same thing, which is to execute a package or application. ei webpack... executes the node package webpack.
In both Windows and Linux there is a global binary folder. In Windows I believe it's something like C://Windows/System32 and in Linux it's usr/bin. When you open the terminal/command prompt, the profile of it links the PATH variable to the global bin folder so you are able to execute packages/applications from it.
My best guess is that installing webpack globally may not have successfully put the executable file in the global binary folder. Without the executable there, you will get an error message. It could be another issue, but it is safe to say the that if you are here reading this, running webpack globally is not working for you.
My resolution to this problem is to do away with running webpack globally and link the PATH to the node_module binary folder, which is /node_modules/.bin.
WINDOWS: add node_modules/.bin to your PATH. Here is a tutorial on how to change the PATH variable in windows.
LINUX: Go to your project root and execute this...
export PATH=$PWD/node_modules/.bin:$PATH
In Linux you will have to execute this command every time you open your terminal. This link here shows you how to make a change to your PATH variable permanent.
Upvotes: 2
Reputation: 171
For Visual Studio users: Right click on the npm folder and "Restore Packages".
Upvotes: 0
Reputation: 53
Installing both webpack and CLI globally worked for me.
npm i -g webpack webpack-cli
Upvotes: 5
Reputation: 921
npm link webpack worked for me.
My webpack configuration: "webpack": "^4.41.2", "webpack-dev-server": "^3.9.0", "webpack-cli": "^3.3.10"
Upvotes: 0
Reputation: 361
Run below commands in Terminal:
npm install --save-dev webpack
npm install --save-dev webpack-dev-server
Upvotes: 35
Reputation: 11
Open npm command prompt and -- cd solution folder and then just run npm link webpack in NPM cmd prommt and re build..
Upvotes: 1
Reputation: 3819
I had a ton of issues getting a very simple .NET Core 2.0 application to build in VS 2017. This is the error from AppVeyor, however it was essentially the same thing locally (some paths omitted for security) :
Performing first-run Webpack build...
module.js:327 throw err;
EXEC : error : Cannot find module '......../node_modules/webpack/bin/webpack.js'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:140:18)
at node.js:1043:3
csproj(25,5): error MSB3073: The command "node node_modules/webpack/bin/webpack.js --config webpack.config.vendor.js" exited with code 1.
Build FAILED.
I stumbled upon this question and answer, and I noticed my local instance also had the same warning sign over the {Project Root} -> Dependencies -> npm
folder. Right clicking and hitting "Restore packages" got everything loaded up properly, and I was able to build successfully.
Upvotes: 0
Reputation: 2949
for me, it is a wrong error feedback.
there was config error in webpack.config.js
,
delete the file and start over solved my issue
Upvotes: 1
Reputation: 11
Just found out that using Atom IDE terminal did not install dependencies locally (probably a bug or just me). Installing git bash externally and running npm commands again worked for me
Upvotes: 0
Reputation: 1
Nothing suggested above worked for me (including the NODE_PATH variable). I created a sym link of "node_modules" from my local folder to the global AppData(eg below) and it worked like charm.
C:\Users\mmoinuddin\AppData\Roaming\npm>mklink /D node_modules c:\essportreact\day1\node_modules
symbolic link created for node_modules <<===>> c:\essportreact\day1\node_modules
C:\essportreact\day1>webpack
Hash: 2a82a67f90f9aa05ab4a
Version: webpack 1.15.0
Upvotes: 0
Reputation: 980
On windows, I have observed that this issue shows up if you do not have administrative rights (i.e., you are not a local administrator) on the machine.
As someone else suggested, the solution seems to be to install locally by not using the -g
hint.
Upvotes: 1
Reputation: 266
I was having this issue on OS X and it seemed to be caused by a version mismatch between my globally installed webpack
and my locally installed webpack-dev-server
. Updating both to the latest version got rid of the issue.
Upvotes: 9
Reputation: 755
While working on windows, I've installed webpack locally and it fixed my problem
So, on your command prompt, go to the directory of which you want to run webpack, install webpack locally (without the -g) and enjoy...
Upvotes: 62
Reputation: 24334
Seems to be a common Windows problem. This fixed it for me:
Nodejs cannot find installed module on Windows?
"Add an environment variable called NODE_PATH
and set it to %USERPROFILE%\Application Data\npm\node_modules
(Windows XP), %AppData%\npm\node_modules
(Windows 7), or wherever npm ends up installing the modules on your Windows flavor. To be done with it once and for all, add this as a System variable in the Advanced tab of the System Properties dialog (run control.exe sysdm.cpl,System,3)."
Note that you can't actually use another environment variable within the value of NODE_PATH
. That is, don't just copy and paste that string above, but set it to an actual resolved path like C:\Users\MYNAME\AppData\Roaming\npm\node_modules
Upvotes: 24