Sha256: 599fe986ec0f3d4e11db6c837b774e48f23e31b35389c65cb961ea1ec540a0a4

Contents?: true

Size: 1.57 KB

Versions: 29

Compression:

Stored size: 1.57 KB

Contents

const { resolve } = require('path')
const { safeLoad } = require('js-yaml')
const { readFileSync } = require('fs')
const deepMerge = require('./utils/deep_merge')
const { isArray, ensureTrailingSlash } = require('./utils/helpers')
const { railsEnv } = require('./env')
const configPath = require('./configPath')

const defaultConfigPath = require.resolve('../lib/install/config/webpacker.yml')

const getDefaultConfig = () => {
  const defaultConfig = safeLoad(readFileSync(defaultConfigPath), 'utf8')
  return defaultConfig[railsEnv] || defaultConfig.production
}

const defaults = getDefaultConfig()
const app = safeLoad(readFileSync(configPath), 'utf8')[railsEnv]

if (isArray(app.extensions) && app.extensions.length) delete defaults.extensions
if (isArray(app.static_assets_extensions) && app.static_assets_extensions.length) {
  delete defaults.static_assets_extensions
}

const config = deepMerge(defaults, app)
config.outputPath = resolve(config.public_root_path, config.public_output_path)

// Merge resolved_paths into additional_paths for backwards-compat
config.additional_paths = config.additional_paths.concat(config.resolved_paths || [])

// Ensure that the publicPath includes our asset host so dynamic imports
// (code-splitting chunks and static assets) load from the CDN instead of a relative path.
const getPublicPath = () => {
  const rootUrl = ensureTrailingSlash(process.env.WEBPACKER_ASSET_HOST || '/')
  return `${rootUrl}${config.public_output_path}/`
}

config.publicPath = getPublicPath()
config.publicPathWithoutCDN = `/${config.public_output_path}/`

module.exports = config

Version data entries

29 entries across 29 versions & 7 rubygems

Version Path
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/webpacker-5.4.4/package/config.js
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/webpacker-5.4.4/package/config.js
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/webpacker-5.4.4/package/config.js
jetpacker-0.7.0 package/config.js
webpacker-5.4.4 package/config.js
jetpacker-0.6.0 package/config.js
disco_app-0.16.1 test/dummy/node_modules/@rails/webpacker/package/config.js
disco_app-0.15.2 test/dummy/node_modules/@rails/webpacker/package/config.js
disco_app-0.18.4 test/dummy/node_modules/@rails/webpacker/package/config.js
disco_app-0.18.1 test/dummy/node_modules/@rails/webpacker/package/config.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/@rails/webpacker/package/config.js
disco_app-0.14.0 test/dummy/node_modules/@rails/webpacker/package/config.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/@rails/webpacker/package/config.js
webpacker-5.4.3 package/config.js
webpacker-5.4.2 package/config.js
webpacker-5.4.1 package/config.js
webpacker-5.4.0 package/config.js
webpacker-5.3.0 package/config.js
webpacker-5.2.2 package/config.js
tang-0.2.1 spec/tang_app/node_modules/@rails/webpacker/package/config.js