I'm trying to deploy my application to production, but I receive "Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API Schema. - configuration has an unknown property 'resolvedModules'. These properties are valid:" I recently upgraded to the latest stable build of webpacker for Rails 6. I believe its webpacker 4. This error is stemming from my environment.js file - It was working with some minor issues regarding JQuery - which was failing to work globally in certain cases. I thought that, maybe it was a bug in the gem spec that I was using. After commenting out the whole entire environment.js file, it deployed without issue. There is no 'resolvedModules' configuration object in my environment file. Unless its coming from the "@rails/webpacker" require statement. How can I fix my environment.js file to ProvidePlugin for JQuery and my other dependencies, while fixing the resolvedModules error that I receive during deploy?
environment.js
const {environment} = require('@rails/webpacker');
const webpack = require('webpack')'
environment.plugins.prepend('Provide',
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
moment: 'moment'
}));
environment.config.set('resolve.alias', {jquery: 'jquery/src/jquery'});
module.exports = environment;
UPDATE
I receive the error below when I deploy with the new changes?
DEBUG [4763131a] Compilation failed:
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
- configuration has an unknown property 'resolvedModules'. These properties are valid:
object { amd?, bail?, cache?, context?, dependencies?, devServer?, devtool?, entry?, externals?, infrastructureLogging?, loader?, mode?, module?, name?, node?, optimization?, output?, parallelism?, performance?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, serve?, stats?, target?, watch?, watchOptions? }
For typos: please correct them.
For loader options: webpack >= v2.0.0 no longer allows custom properties in configuration.
Loaders should be updated to allow passing options via loader options in module.rules.
Until loaders are updated one can use the LoaderOptionsPlugin to pass these options to the loader:
plugins: [
new webpack.LoaderOptionsPlugin({
// test: /\.xxx$/, // may apply this only for some modules
options: {
resolvedModules: …
}
})
]
- configuration.plugins[0] misses the property 'apply'.
function
-> The run point of the plugin, required method.
- configuration.plugins[1] misses the property 'apply'.
function
-> The run point of the plugin, required method.
- configuration.plugins[2] misses the property 'apply'.
function
-> The run point of the plugin, required method.
- configuration.plugins[3] misses the property 'apply'.
function
-> The run point of the plugin, required method.
- configuration.plugins[4] misses the property 'apply'.
function
-> The run point of the plugin, required method.
- configuration.plugins[5] misses the property 'apply'.
function
-> The run point of the plugin, required method.
- configuration.plugins[6] misses the property 'apply'.
function
-> The run point of the plugin, required method.
- configuration.plugins[7] misses the property 'apply'.
function
-> The run point of the plugin, required method.
webpack overall config
package.json
{
"name": "sample_app",
"private": true,
"dependencies": {
"@client-side-validations/client-side-validations": "^0.1.1",
"@client-side-validations/simple-form": "^0.1.1",
"@fortawesome/fontawesome-free": "^5.12.1",
"@rails/actioncable": "^6.0.0-alpha",
"@rails/activestorage": "^6.0.0-alpha",
"@rails/webpacker": "^5.0.0",
"@yaireo/tagify": "yaireo/tagify",
"active_storage_drag_and_drop": "^0.4.1",
"chart.js": "^2.9.3",
"chartkick": "^3.2.0",
"cocoon": "github:nathanvda/cocoon#c24ba53",
"flow-webpack-plugin": "^1.2.0",
"jquery": "^3.4.1",
"jquery-ujs": "latest",
"moment": "^2.24.0",
"owl.carousel": "^2.3.4",
"stimulus": "^1.1.1",
"webpack": "^4.42.1"
},
"version": "0.1.0",
"devDependencies": {
"webpack-dev-server": "^3.9.0"
}
}
webpacker.yml
# Note: You must restart bin/webpack-dev-server for changes to take effect
default: &default
source_path: app/javascript
source_entry_path: packs
public_root_path: public
public_output_path: packs
cache_path: tmp/cache/webpacker
check_yarn_integrity: false
webpack_compile_output: false
# Additional paths webpack should lookup modules
# ['app/assets', 'engine/foo/app/assets']
resolved_paths: ['app/assets']
# Reload manifest.json on all requests so we reload latest compiled packs
cache_manifest: false
# Extract and emit a css file
extract_css: false
static_assets_extensions:
- .jpg
- .jpeg
- .png
- .gif
- .tiff
- .ico
- .svg
- .eot
- .otf
- .ttf
- .woff
- .woff2
extensions:
- .erb
- .mjs
- .js
- .sass
- .scss
- .css
- .module.sass
- .module.scss
- .module.css
- .png
- .svg
- .gif
- .jpeg
- .jpg
development:
<<: *default
compile: true
# Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
check_yarn_integrity: true
# Reference: https://webpack.js.org/configuration/dev-server/
dev_server:
https: false
host: localhost
port: 3035
public: localhost:3035
hmr: false
# Inline should be set to true if using HMR
inline: true
overlay: true
compress: true
disable_host_check: true
use_local_ip: false
quiet: false
headers:
'Access-Control-Allow-Origin': '*'
watch_options:
ignored: '**/node_modules/**'
test:
<<: *default
compile: true
# Compile test packs to a separate directory
public_output_path: packs-test
production:
<<: *default
# Production depends on precompilation of packs prior to booting for performance.
compile: false
# Extract and emit a css file
extract_css: true
# Cache manifest.json for performance
cache_manifest: true
production.js
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
const environment = require('./environment');
module.exports = environment;
Check compatible versions of webpacker in package.json
. Mine is..
"dependencies": {
"@rails/webpacker": "5.4.0",
"webpack": "^4.46.0",
},
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With