溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue.js中怎么根據(jù)不同環(huán)境打包到不同目錄

發(fā)布時間:2021-07-09 15:10:22 來源:億速云 閱讀:551 作者:Leah 欄目:web開發(fā)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)vue.js中怎么根據(jù)不同環(huán)境打包到不同目錄,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、在build文件夾中創(chuàng)建testing.js文件

// 配置環(huán)境變量 type 為 testing
process.env.type = '"testing"'
// 引入build.js文件
require('./build')

2、修改config文件夾中的prod.env.js文件

module.exports = {
 NODE_ENV: '"production"',
 // 將上文設(shè)置的環(huán)境變量,賦值到 type 屬性上
 type: process.env.type
}

3、在package.json文件中添加npm run testing命令

"testing": "node build/testing.js", // 添加testing命令
"build": "node build/build.js"

4、config ->index.js中把build這個命令復(fù)制一份改成testing(此步為了打包到不同文件夾)

build: {
  env: require('./prod.env'),
  // Template for index.html
  index: path.resolve(__dirname, '../dist/index.html'),

  // Paths
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: '/mshop/',

  /**
   * Source Maps
   */

  productionSourceMap: true,
  // https://webpack.js.org/configuration/devtool/#production
  devtool: '#source-map',

  // Gzip off by default as many popular static hosts such as
  // Surge or Netlify already gzip all static assets for you.
  // Before setting to `true`, make sure to:
  // npm install --save-dev compression-webpack-plugin
  productionGzip: false,
  productionGzipExtensions: ['js', 'css'],

  // Run the build command with an extra argument to
  // View the bundle analyzer report after build finishes:
  // `npm run build --report`
  // Set to `true` or `false` to always turn it on or off
  bundleAnalyzerReport: process.env.npm_config_report
 },
 testing: {
  env: require('./prod.env'),
  index: path.resolve(__dirname, '../testing/index.html'),
  assetsRoot: path.resolve(__dirname, '../testing'),
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  productionSourceMap: true,
  // Gzip off by default as many popular static hosts such as
  // Surge or Netlify already gzip all static assets for you.
  // Before setting to `true`, make sure to:
  // npm install --save-dev compression-webpack-plugin
  productionGzip: false,
  productionGzipExtensions: ['js', 'css'],
  // Run the build command with an extra argument to
  // View the bundle analyzer report after build finishes:
  // `npm run build --report`
  // Set to `true` or `false` to always turn it on or off
  bundleAnalyzerReport: process.env.npm_config_report
 },

5、修改build->webpack.prod.conf文件

修改filename

new HtmlWebpackPlugin({

   filename: process.env.type == '"testing"' ? config.testing.index : config.build.index
  }),

修改output

  output: {
  path: process.env.type == '"testing"' ? config.testing.assetsRoot : config.build.assetsRoot,
 },

6、修改build->build.js文件

路徑都修改為根據(jù)正式、測試環(huán)境判斷(不然執(zhí)行npm run testing, npm run build命令時輸出的文件有問題)

復(fù)制代碼 代碼如下:

rm(path.join(process.env.type == '"testing"' ? config.testing.assetsRoot : config.build.assetsRoot, process.env.type == '"testing"' ? config.testing.assetsSubDirectory : config.build.assetsSubDirectory), err => {

7、根據(jù)不同環(huán)境配置不同域名地址

let baseURL
if (process.env.NODE_ENV === 'production') {
 if (process.env.type === 'testing') { // 測試環(huán)境
  baseUrl = '測試環(huán)境地址'
 } else {               // 正式環(huán)境
  baseUrl = '正式環(huán)境地址'
 }
} else {                // 本地環(huán)境
 baseUrl = '本地環(huán)境地址'
}

最后執(zhí)行:

npm run testing 就會執(zhí)行測試環(huán)境配置的地址,并生成testing文件夾
npm run build就會執(zhí)行正式環(huán)境配置的地址,并生成dist文件夾

上述就是小編為大家分享的vue.js中怎么根據(jù)不同環(huán)境打包到不同目錄了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI