10000 Generate a file link without hash in it · Issue #1088 · symfony/webpack-encore · GitHub
[go: up one dir, main page]

Skip to content

Generate a file link without hash in it #1088

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Mareva-dev opened this issue Feb 9, 2022 · 2 comments
Open

Generate a file link without hash in it #1088

Mareva-dev opened this issue Feb 9, 2022 · 2 comments
Labels

Comments

@Mareva-dev
Copy link
Mareva-dev commented Feb 9, 2022

Hello,

I am using Symfony 5.2 with React JS.
I'm looking for a way to get a permanent file-name in my application.

For example if i got a file called catalog.pdf i want people to access it using https://domain/build/catalog.pdf and not https://domain/build/catalog.19549123e15f14214e056104b968a644.pdf.

Is there a way to create an exception for this one file in order to build it without hash in file name ?
I need to share this file with a lot of people and it changes a lot also.

Here is my WebpackEncore configuration, just in case :

const { getWebpackConfig } = require('@symfony/webpack-encore');
const Encore = require('@symfony/webpack-encore');

// Manually configure the runtime environment if not already configured yet by the "encore" command.
// It's useful when you use tools that rely on webpack.config.js file.
if (!Encore.isRuntimeEnvironmentConfigured()) {
  Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
}

Encore
  // directory where compiled assets will be stored
  .setOutputPath('public/build/')
  // public path used by the web server to access the output path
  .setPublicPath('/build')
  // only needed for CDN's or sub-directory deploy
  //.setManifestKeyPrefix('build/')

  .copyFiles({
      from: './assets/images',
      to: '../images/[path][name].[ext]'
      // if versioning is enabled, add the file hash too
      //to: 'images/[path][name].[hash:8].[ext]',
  
      // only copy files matching this pattern
      //pattern: /\.(png|jpg|jpeg)$/
  })

  .configureDevServerOptions(options => ({
      ...options,
      allowedHosts: 'all',
      client: {
        webSocketURL: 'ws://localhost:8080/ws'
      },
  })      
  )
  /*
   * ENTRY CONFIG
   *
   * Each entry will result in one JavaScript file (e.g. app.js)
   * and one CSS file (e.g. app.css) if your JavaScript imports CSS.
   */
  .addEntry('app', './assets/app.js')

  // enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js)
  .enableStimulusBridge('./assets/controllers.json')

  // When enabled, Webpack "splits" your files into smaller pieces for greater optimization.
  .splitEntryChunks()

  // will require an extra script tag for runtime.js
  // but, you probably want this, unless you're building a single-page app
  .enableSingleRuntimeChunk()

  /*
   * FEATURE CONFIG
   *
   * Enable & configure other features below. For a full
   * list of features, see:
   * https://symfony.com/doc/current/frontend.html#adding-more-features
   */
  .cleanupOutputBeforeBuild()
  .enableBuildNotifications()
  .enableSourceMaps(!Encore.isProduction())
  // enables hashed filenames (e.g. app.abc123.css)
  .enableVersioning(Encore.isProduction())

  .configureBabel((config) => {
      config.plugins.push('@babel/plugin-proposal-class-properties');
  })

  // enables @babel/preset-env polyfills
  .configureBabelPresetEnv((config) => {
      config.useBuiltIns = 'usage';
      config.corejs = 3;
  })

  .addLoader(
      {         
          test: /\.html$/,
          loader: "html-loader",
          options: {           
              attributes: [':src'], 
          }
      }
  )
  .addLoader(
      {
          test: /\.(mp4|svg|pdf)$/,
          use: {
            loader: "file-loader",
            options: {
              name: "[name].[hash].[ext]"
            }
          }
      }
  )

  // enables Sass/SCSS support
  //.enableSassLoader()

  // uncomment if you use TypeScript
  //.enableTypeScriptLoader()

  // uncomment if you use React
  .enableReactPreset()

  // uncomment to get integrity="..." attributes on your script & link tags
  // requires WebpackEncoreBundle 1.4 or higher
  //.enableIntegrityHashes(Encore.isProduction())

  // uncomment if you're having problems with a jQuery plugin
  //.autoProvidejQuery()
;

module.exports = Encore.getWebpackConfig(); 
@carsonbot
Copy link
Collaborator

Thank you for this issue.
There has not been a lot of activity here for a while. Has this been resolved?

1 similar comment
@carsonbot
Copy link
Collaborator

Thank you for this issue.
There has not been a lot of activity here for a while. Has this been resolved?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants
0