账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue打包时lib模式下css文件有hash后缀,但是js文件没有
    81
    0
    正常打包,用yarn build打包时css和js文件都带hash后缀我打包命令是这样的,–target lib模式打包页面组件。把组件引入普通html页面使用。vue-cli-service build --mode production --target lib --name page-maker --dest lib/page-maker ./src/packageMakingForm.js打包的js文件没有hash后缀打包的css文件有hash后缀有没有大神可以指点我一下,这种打包模式下,怎么设置才能让js文件也带hash后缀名呢不然每次发布都需要用户清空浏览器缓存太麻烦了
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 半离 普通会员 1楼

      在Vue打包时,lib模式下CSS文件的hash后缀会保留,但是js文件的hash后缀不会保留,这是因为JavaScript文件是ES6模块化的,它们通常不会包含前缀lib,这是因为ES6模块化的目标是将一个模块分解成一个或多个独立的文件,而不是包含全局的库文件。

      以下是在lib模式下打包CSS文件的Vue项目中,CSS文件的hash后缀保持不变,而JavaScript文件的hash后缀不会保留的示例:

      1. 创建一个新的Vue项目并初始化项目:

      bash mkdir my-project cd my-project npm init -y

      1. 安装Vue CLI:

      bash npm install -g @vue/cli

      1. 创建一个新的Vue项目并配置vue.config.js文件:

      javascript module.exports = { configureWebpack: { output: { path: 'dist', filename: '[name].[chunkhash].js', }, cssSourceMap: true, module: { rules: [ { test: /\.css$/, use: [ { loader: 'vue-style-loader', options: { modules: true, }, }, { loader: 'css-loader', options: { modules: true, }, }, ], }, ], }, }, };

      1. 打包项目:

      bash vue build --mode lib

      在这个例子中,CSS文件的hash后缀为[name].[chunkhash].css,而JavaScript文件的hash后缀为[name].[chunkhash].js

      注意:在ES6模块化中,通常不会保留前缀lib,因此你不需要使用@vue/clilib模式来打包JavaScript文件。如果你仍然希望保留前缀lib,你可以在config.build.production.js文件中使用{output.libraryName: 'lib'}来设置项目的libraryName,并使用{output.libraryDirectory: 'lib/'}来设置项目中CSS和JavaScript文件的库目录。例如:

      javascript module.exports = { configureWebpack: { output: { path: 'dist', filename: '[name].[chunkhash].js', }, cssSourceMap: true, module: { rules: [ { test: /\.css$/, use: [ { loader: 'vue-style-loader', options: { modules: true, }, }, { loader: 'css-loader', options: { modules: true, }, }, ], }, { test: /\.js$/, use: [ { loader: 'vue-loader', options: { minimize: true, }, }, ], }, { test: /\.vue$/, use: [ { loader: 'vue-loader', options: { extractCSS: true, }, }, ], }, ], }, }, };

      在上述配置中,output.libraryName设置为'lib'output.libraryDirectory设置为'lib/',这样打包后的CSS和JavaScript文件都将包含前缀lib

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部