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
Post a Comment