node.js - Webpack error - can't resolve loader in 'tmp/build...' -


i added eslint , eslint-loader npm modules dev dependencies react app (with webpack) - when running development server locally. however, when try build production release locally, fails following error:

npm err! darwin 16.7.0 npm err! argv "/users/user/.nvm/versions/node/v6.11.1/bin/node" "/users/user/.nvm/versions/node/v6.11.1/bin/npm" "run" "build:client" npm err! node v6.11.1 npm err! npm  v3.10.10 npm err! code elifecycle npm err! app@0.0.1 build:client: `webpack` npm err! exit status 2 npm err!  npm err! failed @ app@0.0.1 build:client script 'webpack'. 

on whim, tried pushing heroku, got more helpful error:

error in entry module not found: error: can't resolve 'eslint-loader' in '/tmp/build_5f502b6d28fee058cbe484b873b6e7cb' npm err! code elifecycle npm err! errno 2 npm err! app@0.0.1 build:client: `webpack` npm err! exit status 2 

so part admit bit baffled webpack, , appreciate guidance , clarification, if can offered. i've seen others similar issue, never referring '/tmp/build...' directory.

so first off, here scripts , other relevant bits in package.json:

"scripts": {     "start": "if-env node_env=production && npm run start:prod || npm run start:dev",     "start:prod": "node server.bundle.js",     "start:dev": "concurrently --prefix \"[{name}]\" -k \"webpack -d --watch --colors\"  \"nodemon index.js\" -n \"webpack,nodemon\" --content-base public/",     "build:client": "webpack",     "build:server": "webpack --config webpack.server.config.js",     "build": "node_env=production npm run build:client && npm run build:server",     "postinstall": "npm run build" }, "dependencies": {     "webpack": "^2.6.0" }, "devdependencies": {     "eslint": "^4.4.1",     "eslint-loader": "^1.9.0",     "eslint-plugin-babel": "^4.1.2",     "eslint-plugin-react": "^7.1.0"     "webpack-dev-server": "^2.4.5" } 

as errors say, build:client failing...

and webpack.config.js:

"module": {     "loaders": [         {             "exclude": /node_modules/,             "loader": "babel-loader",             "query": { "presets": ["react", "es2015", "stage-2"] },             "test": /\.jsx?$/         },         {             "exclude": /node_modules/,             "loader": "babel-loader",             "test": /\.js$/         },         {             "enforce": "pre",             "exclude": /node_modules/,             "loader": "eslint-loader",             "query": { "presets": ["react", "es2015", "stage-2"] },             "test": /\.jsx$/         },         {             "enforce": "pre",             "exclude": /node_modules/,             "loader": "eslint-loader",             "test": /\.js$/         }     ] } 

if comment out sections referring eslint-loader in config, builds fine, heroku keenly observed, problem must lines. can suggest fix problem? i'm not sure understand going wrong, let alone how resolve it.

edit here complete webpack.config.js:

const webpack = require("webpack")  module.exports = {     "entry": "./src/index.jsx",     "module": {         "loaders": [             {                 "exclude": /node_modules/,                 "loader": "babel-loader",                 "query": { "presets": ["react", "es2015", "stage-2"] },                 "test": /\.jsx?$/             },             {                 "exclude": /node_modules/,                 "loader": "babel-loader",                 "test": /\.js$/             },             {                 "enforce": "pre",                 "exclude": /node_modules/,                 "loader": "eslint-loader",                 "query": { "presets": ["react", "es2015", "stage-2"] },                 "test": /\.jsx$/             },             {                 "enforce": "pre",                 "exclude": /node_modules/,                 "loader": "eslint-loader",                 "test": /\.js$/             }         ]     },     "output": {         "filename": "./public/bundle.js",         "publicpath": "/"     },     "plugins": [         new webpack.defineplugin({             "api_url": json.stringify(process.env.api_url || "http://localhost:4000/api/v1"),             "is_staging": json.stringify(process.env.is_staging || "false"),             "node_env": json.stringify(process.env.node_env || "development")         })     ] } 

thanks @marek , @archae0pteryx thoughts on - came fix, though may not optimal...

basically, created webpack.dev.config.js file included references eslint-loader... fine, since want use linting in local development. removed references main config file updated package.json use dev config in local development, , good.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -