웹 프론트엔드 JS 튜토리얼 vue-cli 설치 및 구성 웹팩

vue-cli 설치 및 구성 웹팩

Jun 13, 2018 am 11:10 AM
vue-cli

这次给大家带来vue-cli安装与配置webpack,vue-cli安装与配置webpack的注意事项有哪些,下面就是实战案例,一起来看一下。

本文章适合初学者学习,如有错请提出。近期对vue比较感兴趣,所以准备用vue写一个blog。早期先对vue脚手架了解一下,对于新手官网建议先不用vue-cli,但我觉得如果没有任何的依据凭自己写一个项目(包括webpack的配置等)这无疑是浪费时间的而且都最后还是是而非的。所以我觉得完全可以用脚手架建一个webpack项目,然后我们可以具体对应它生成的文件学习(当然这只是我的学习方法,我认为这样比较好学,但不一定人人都是这样的)。

在学习的过程中发现网上许多的简介都已经过期(vue发展的过快了吧。。。。),所以我结合自己的项目和网上的资料备注一下,希望和其他的人一起讨论。这个适合的版本为:nodejs(6.10.2)、vue(2.5.2)、vue-router(3.0.1)和webpack(3.6.0)的。适合的环境为windows的,其他的系统我也不知道可不可以用。

一、vue-cli安装与配置webpack

1、默认电脑已经安装了node,不会的请百度然后先安装nodejs。

2、安装好nodejs之后,全局安装vue-cli:npm install -g vue-cli。

3、新建webpack项目:vue init webpack projectname(这是比较完整的,我们学习用这个比较好)、vue init webpack-simple projectname(简易版的)。

注意:projectname项目名不能用中文。

4、“vue init webpack-simple projectname”创建新项目的目录结构:

生成新项目时并没有安装依赖,需要进入新的项目安装依赖:cd projectname -> npm install。

新建项目时,会需要填一些东西,但如果你都不想填也无所谓,全部默认、全部yes都行:

(1)、Project name:——项目名称
(2)、Project description:——项目描述
(3)、Author:——作者
(4)、Vue build:——构建模式,一般默认选择第一种
(5)、Install vue-router?:——是否安装引入vue-router,这里选是,vue-router是路由组件,后面构建项目会用到
(6)、Use ESLint to lint your code?:——eslint的格式验证非常严格,多一个空格少一个空格都会报错。个人觉得如果是平时练习的话可以选yes因为这个可以规范自己js代码的书写规范。但在实际开发项目中不建议使用,会影响开发效率。
(7)、Setup unit tests with Karma + Mocha 以及Setup e2e tests with Nightwatch这两个是测试,可以不用安装。

“vue init webpack projectname”创建新项目的目录结构:

二、build目录下配置文件之check-versions.js

这个文件并不是十分重要,只要稍微了解就行了。


/**
 * 验证版本
 */
'use strict'
//chalk是一个颜色插件。可以通过
const chalk = require('chalk')
//semver一个版本控制插件
const semver = require('semver')
const packageConfig = require('../package.json')
//shelljss是nodejs对与多进程的支持,是对于child_process封装
const shell = require('shelljs')

function exec (cmd) {
 return require('child_process').execSync(cmd).toString().trim()
}

const versionRequirements = [
 {//对应node的版本
  name: 'node',
  //当前环境版本,semver.clean把当前环境版本信息转化规定格式,也是' =v1.2.3 '->'1.2.3'
  currentVersion: semver.clean(process.version),
  //要求版本,对应package.json的engines所配置的信息
  versionRequirement: packageConfig.engines.node
 }
]

//npm环境中
if (shell.which('npm')) {
 versionRequirements.push({
  name: 'npm',
  //执行方法得到版本号
  currentVersion: exec('npm --version'),
  versionRequirement: packageConfig.engines.npm
 })
}

module.exports = function () {
 const warnings = []

 for (let i = 0; i < versionRequirements.length; i++) {
  const mod = versionRequirements[i]

  //如果版本号不符合package.json文件中指定的版本号,就执行下面的代码
  if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
   warnings.push(mod.name + &#39;: &#39; +
    chalk.red(mod.currentVersion) + &#39; should be &#39; +
    chalk.green(mod.versionRequirement)
   )
  }
 }

 if (warnings.length) {
  console.log(&#39;&#39;)
  console.log(chalk.yellow(&#39;To use this template, you must update following to modules:&#39;))
  console.log()

  for (let i = 0; i < warnings.length; i++) {
   const warning = warnings[i]
   console.log(&#39; &#39; + warning)
  }

  console.log()
  process.exit(1)
 }
}
로그인 후 복사

三、build目录下配置文件之utils.js

这个文件主要用于处理有关于css方面的,主要对后面vue-loader.conf.js文件有关系,对webpack配置loaders方面也有影响。


/**
 * webpack开发环境:主要用来处理css-loader和vue-style-loader
 */

&#39;use strict&#39;
const path = require(&#39;path&#39;)
const config = require(&#39;../config&#39;)
//引入extract-text-webpack-plugin插件,用来将css提取到单独的css文件中
const ExtractTextPlugin = require(&#39;extract-text-webpack-plugin&#39;)
const packageConfig = require(&#39;../package.json&#39;)

exports.assetsPath = function (_path) {
 //process.env.NODE_ENV在bulid.js中定义
 //如果为生产环境assetsSubDirectory为“static”,否则也为“static”
 //config.build.assetsSubDirectory与config.dev.assetsSubDirectory都在config/index中定义
 const assetsSubDirectory = process.env.NODE_ENV === &#39;production&#39;
  ? config.build.assetsSubDirectory
  : config.dev.assetsSubDirectory

 //path.join和path.posix.join区别前者返回完整路径,后者返回完整路径的相对路径
 //例:path.join是E:/shishans/blogsss/static,path.posix.join是static
 return path.posix.join(assetsSubDirectory, _path)
}

exports.cssLoaders = function (options) {
 options = options || {}

 //css-loader的基本配置
 const cssLoader = {
  loader: &#39;css-loader&#39;,
  options: {
   //option用于配置loder的
   //是否开启cssMap,默认是false
   //一般我们会压缩js或者css以节省宽带,但在开发压缩就很难调试
   //所以用sourceMap进行关联,给出对应的sourceMap文件
   sourceMap: options.sourceMap
  }
 }

 const postcssLoader = {
  loader: &#39;postcss-loader&#39;,
  options: {
   sourceMap: options.sourceMap
  }
 }

 // generate loader string to be used with extract text plugin
 function generateLoaders (loader, loaderOptions) {
  //将上面的基础配置放到一个数据中
  const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
  //如果该函数传递了单独的loder就加入到loaders数组中例如:sass或者less之类的
  if (loader) {
   loaders.push({
    //加载对应的loader
    loader: loader + &#39;-loader&#39;,
    //es6方法Object.assign:主要用于合并对象的,浅拷贝
    options: Object.assign({}, loaderOptions, {
     sourceMap: options.sourceMap
    })
   })
  }

  // Extract CSS when that option is specified
  // (which is the case during production build)
  // extract自定义属性,用ExtractTextPlugin.extract控制是否把文件单独提取
  // true:单独提取,false表示不提取
  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: &#39;vue-style-loader&#39;
   })
  } else {
   //[].concat()方法用于连接数组
   return [&#39;vue-style-loader&#39;].concat(loaders)
  }
 }

 // https://vue-loader.vuejs.org/en/configurations/extract-css.html
 return {
  css: generateLoaders(),//返回[cssLoader, vue-style-loader]
  postcss: generateLoaders(),//返回[cssLoader, vue-style-loader]
  less: generateLoaders(&#39;less&#39;),//返回[cssLoader, vue-style-loader, less]
  sass: generateLoaders(&#39;sass&#39;, { indentedSyntax: true }),
  scss: generateLoaders(&#39;sass&#39;),
  stylus: generateLoaders(&#39;stylus&#39;),
  styl: generateLoaders(&#39;stylus&#39;)
 }
}

// Generate loaders for standalone style files (outside of .vue)
// 这个方法主要处理import这种方式导入的文件类型的打包
exports.styleLoaders = function (options) {
 const output = []
 const loaders = exports.cssLoaders(options)

 for (const extension in loaders) {
  const loader = loaders[extension]
  output.push({
   test: new RegExp(&#39;\\.&#39; + extension + &#39;$&#39;),
   use: loader
  })
 }

 return output
}

//用于返回脚手架错误的函数
exports.createNotifierCallback = () => {
 //使用node-notifier来发送桌面消息,包括应用状态改变以及错误信息
 const notifier = require(&#39;node-notifier&#39;)

 return (severity, errors) => {
  if (severity !== &#39;error&#39;) return

  const error = errors[0]
  const filename = error.file && error.file.split(&#39;!&#39;).pop()

  notifier.notify({
   title: packageConfig.name,
   message: severity + &#39;: &#39; + error.name,
   subtitle: filename || &#39;&#39;,
   icon: path.join(__dirname, &#39;logo.png&#39;)
  })
 }
}
로그인 후 복사

四、build目录下配置文件之webpack.base.conf.js

从这个文件开始,webpack配置文件正式开始,前面的相当于是这个文件参数般的存在。而实际上这个也不是正式会运行的配置文件。一个项目有2中情况:开发环境和生成环境。这2中环境一些方面的配置是不一样的,比如在生产环境我们会对js和css进行压缩以减少宽带。这个文件实际上是这2中环境通用的配置。下面的webpack.dev.conf.js文件(开发环境)、

webpack.prod.conf.js(生产环境),这2个文件才是实际环境运行使用的配置文件。


/**
 * webpack开发环境和生成环境通用的配置
 */

&#39;use strict&#39;
const path = require(&#39;path&#39;)
const utils = require(&#39;./utils&#39;)
const config = require(&#39;../config&#39;)
const vueLoaderConfig = require(&#39;./vue-loader.conf&#39;)

//获取对应文件路径的函数
//因为该文件是在项目的二级文件build下,所以要加上../这样才能找到像src这样的目录
function resolve (dir) {
 //join方法用于将多个字符串结合成一个路径字符串
 //path在node中会经常用到可以仔细了解一下path的各种方法
 //__dirname:获取当前文件所在目录的完整绝对路径
 return path.join(__dirname, &#39;..&#39;, dir)
}

//eslint用来检查我们写的js代码是否满足指定的规则
const createLintingRule = () => ({
 test: /\.(js|vue)$/,
 loader: &#39;eslint-loader&#39;,
 enforce: &#39;pre&#39;,
 include: [resolve(&#39;src&#39;), resolve(&#39;test&#39;)],
 options: {
  formatter: require(&#39;eslint-friendly-formatter&#39;),
  emitWarning: !config.dev.showEslintErrorsInOverlay
 }
})

module.exports = {
 context: path.resolve(__dirname, &#39;../&#39;),
 entry: {
  //入口文件是src下的main.js
  app: &#39;./src/main.js&#39;
 },
 output: {
  path: config.build.assetsRoot,
  filename: &#39;[name].js&#39;,
  publicPath: process.env.NODE_ENV === &#39;production&#39;
   ? config.build.assetsPublicPath
   : config.dev.assetsPublicPath
 },
 resolve: {
  //自动解析确定的扩展,在引入模块时不带扩展名
  //例如:import somejs from "@/some"
  extensions: [&#39;.js&#39;, &#39;.vue&#39;, &#39;.json&#39;],
  alias: {
   // 后面的$符号指精确匹配
   // 也就是说只能使用 import vuejs from "vue" 这样的方式导入vue.esm.js文件
   &#39;vue$&#39;: &#39;vue/dist/vue.esm.js&#39;,
   // resolve(&#39;src&#39;) 其实在这里就是项目根目录中的src目录
   // 例如引用src目录下的some.js方法:import somejs from "@/some.js"
   // 用@来代替../src
   &#39;@&#39;: resolve(&#39;src&#39;),
  }
 },
 module: {
  rules: [
   ...(config.dev.useEslint ? [createLintingRule()] : []),
   {
    test: /\.vue$/,
    loader: &#39;vue-loader&#39;,
    options: vueLoaderConfig
   },
   {
    test: /\.js$/,
    loader: &#39;babel-loader&#39;,
    include: [resolve(&#39;src&#39;), resolve(&#39;test&#39;), resolve(&#39;node_modules/webpack-dev-server/client&#39;)]
   },
   {
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: &#39;url-loader&#39;,
    options: {
     limit: 10000,
     name: utils.assetsPath(&#39;img/[name].[hash:7].[ext]&#39;)
    }
   },
   {
    test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
    loader: &#39;url-loader&#39;,
    options: {
     limit: 10000,
     name: utils.assetsPath(&#39;media/[name].[hash:7].[ext]&#39;)
    }
   },
   {
    test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
    loader: &#39;url-loader&#39;,
    options: {
     limit: 10000,
     name: utils.assetsPath(&#39;fonts/[name].[hash:7].[ext]&#39;)
    }
   }
  ]
 },
 node: {
  // prevent webpack from injecting useless setImmediate polyfill because Vue
  // source contains it (although only uses it if it&#39;s native).
  setImmediate: false,
  // prevent webpack from injecting mocks to Node native modules
  // that does not make sense for the client
  dgram: &#39;empty&#39;,
  fs: &#39;empty&#39;,
  net: &#39;empty&#39;,
  tls: &#39;empty&#39;,
  child_process: &#39;empty&#39;
 }
}
로그인 후 복사

五、build目录下配置文件之webpack.dev.conf.js

webpack.prod.conf.js也差不多。这2者之间的差别以后再讨论。


/**
 * 此文件用于开发环境下的webpack配置
 * 就本项目执行npm run dev 和 npm run start都会用到这个文件的配置
 * 具体可以参考JavaScript中"scripts"的配置
 */
&#39;use strict&#39;
const utils = require(&#39;./utils&#39;)
const webpack = require(&#39;webpack&#39;)
const config = require(&#39;../config&#39;)
const merge = require(&#39;webpack-merge&#39;)
const path = require(&#39;path&#39;)
const baseWebpackConfig = require(&#39;./webpack.base.conf&#39;)
const CopyWebpackPlugin = require(&#39;copy-webpack-plugin&#39;)
//生成html文件
const HtmlWebpackPlugin = require(&#39;html-webpack-plugin&#39;)
//friendly-errors-webpack-plugin:把webpack的错误和日志搜集起来展现给用户
const FriendlyErrorsPlugin = require(&#39;friendly-errors-webpack-plugin&#39;)
const portfinder = require(&#39;portfinder&#39;)

const HOST = process.env.HOST
const PORT = process.env.PORT && Number(process.env.PORT)

const devWebpackConfig = merge(baseWebpackConfig, {
 module: {
  rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
 },
 // cheap-module-eval-source-map is faster for development
 // devtool是开发工具选项,用来指定如何生成sourcemap文件,cheap-module-eval-source-map此款soucemap文件性价比最高
 // 生产环境:#source-map
 // 开发环境:#cheap-module-eval-source-map 编译消耗小
 devtool: config.dev.devtool,

 // these devServer options should be customized in /config/index.js
 devServer: {
  clientLogLevel: &#39;warning&#39;,
  historyApiFallback: {
   rewrites: [
    { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, &#39;index.html&#39;) },
   ],
  },
  hot: true,
  contentBase: false, // since we use CopyWebpackPlugin.
  compress: true,
  host: HOST || config.dev.host,
  port: PORT || config.dev.port,
  open: config.dev.autoOpenBrowser,
  overlay: config.dev.errorOverlay
   ? { warnings: false, errors: true }
   : false,
  publicPath: config.dev.assetsPublicPath,
  proxy: config.dev.proxyTable,
  quiet: true, // necessary for FriendlyErrorsPlugin
  watchOptions: {
   poll: config.dev.poll,
  }
 },
 plugins: [
  // DefinePlugin内置webpack插件,专门用来定义全局变量的
  // 下面定义一个全局变量 process.env 并且值是如下
  new webpack.DefinePlugin({
   &#39;process.env&#39;: require(&#39;../config/dev.env&#39;)
  }),
  // 这个插件帮助你实现无刷新加载,关于内部实现原理
  new webpack.HotModuleReplacementPlugin(),
  new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
  new webpack.NoEmitOnErrorsPlugin(),
  // https://github.com/ampedandwired/html-webpack-plugin
  new HtmlWebpackPlugin({
   filename: &#39;index.html&#39;,
   template: &#39;index.html&#39;,
   inject: true
  }),
  // copy custom static assets
  new CopyWebpackPlugin([
   {
    from: path.resolve(__dirname, &#39;../static&#39;),
    to: config.dev.assetsSubDirectory,
    ignore: [&#39;.*&#39;]
   }
  ])
 ]
})

module.exports = new Promise((resolve, reject) => {
 portfinder.basePort = process.env.PORT || config.dev.port
 portfinder.getPort((err, port) => {
  if (err) {
   reject(err)
  } else {
   // publish the new Port, necessary for e2e tests
   process.env.PORT = port
   // add port to devServer config
   devWebpackConfig.devServer.port = port

   // Add FriendlyErrorsPlugin
   devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
    compilationSuccessInfo: {
     messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
    },
    onErrors: config.dev.notifyOnErrors
    ? utils.createNotifierCallback()
    : undefined
   }))

   resolve(devWebpackConfig)
  }
 })
})
로그인 후 복사

六、config目录下之index.js

这个文件配置了一些全局属性,分别dev和build用于区别开发环境和生产环境不同的地方。

7. 요약

vue2.5.2에서는 빌드 디렉토리의 dev-server.js 및 dev-client.js 파일이 취소되고 webpack.dev.conf.js로 대체되었으므로 로컬 액세스를 구성하십시오. webpack.dev.conf.js에서 구성하면 됩니다. 이 문서에서는 나중에 구성하고 사용하는 방법에 대해 자세히 설명하지 않습니다.

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

애플릿 개발 페이지를 공유한 후 홈페이지로 돌아갑니다

Vue의 UI 컴포넌트 라이브러리 맞춤형 동적 컴포넌트

위 내용은 vue-cli 설치 및 구성 웹팩의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Vue 프로젝트 단계 및 프로세스를 생성하는 Vue-cli3.0 스캐폴딩 Vue 프로젝트 단계 및 프로세스를 생성하는 Vue-cli3.0 스캐폴딩 Jun 09, 2023 pm 04:08 PM

Vue-cli3.0은 Vue.js를 기반으로 한 새로운 스캐폴딩 도구로 Vue 프로젝트를 빠르게 생성하는 데 도움이 되며 다양한 편리한 도구와 구성을 제공합니다. 아래에서는 Vue-cli3.0을 사용하여 프로젝트를 생성하는 단계와 과정을 단계별로 소개합니다. Vue-cli3.0을 설치하려면 먼저 Vue-cli3.0을 전역적으로 설치해야 합니다. npm: npminstall-g@vue/cli를 통해 설치할 수 있습니다.

Vue-cli 스캐폴딩 사용 및 플러그인 권장 사항 Vue-cli 스캐폴딩 사용 및 플러그인 권장 사항 Jun 09, 2023 pm 04:11 PM

Vue-cli는 Vue 프로젝트를 구축하기 위해 Vue.js에서 공식적으로 제공하는 스캐폴딩 도구입니다. Vue-cli를 사용하면 Vue 프로젝트의 기본 뼈대를 빠르게 구축할 수 있으므로 개발자는 많은 비용을 들이지 않고도 비즈니스 로직 구현에 집중할 수 있습니다. 시간의 프로젝트의 기본 환경을 구성합니다. 이 글에서는 Vue-cli의 기본 사용법과 흔히 사용되는 플러그인 추천 사항을 소개하고, 초보자를 위한 Vue-cli 활용 가이드를 제공하는 것을 목표로 합니다. 1. Vue-cli 기본 사용법 Vue-cli 설치

Vue에서 Vue-cli 사용에 대한 자세한 가이드 Vue에서 Vue-cli 사용에 대한 자세한 가이드 Jun 26, 2023 am 08:03 AM

Vue는 유연성과 사용 편의성으로 인해 많은 개발자가 선호하는 인기 있는 프런트 엔드 프레임워크입니다. Vue 애플리케이션을 더 잘 개발하기 위해 Vue 팀은 Vue 애플리케이션을 더 쉽게 개발할 수 있는 강력한 도구인 Vue-cli를 개발했습니다. 이번 글에서는 Vue-cli의 사용법을 자세히 소개하겠습니다. 1. Vue-cli 설치 Vue-cli를 사용하기 전에 먼저 Vue-cli를 설치해야 합니다. 먼저 Node.js가 설치되어 있는지 확인해야 합니다. 그런 다음 npm을 사용하여 Vue-c를 설치하십시오.

Vue-cli 스캐폴딩 도구 사용법 및 프로젝트 구성 지침 Vue-cli 스캐폴딩 도구 사용법 및 프로젝트 구성 지침 Jun 09, 2023 pm 04:05 PM

Vue-cli 스캐폴딩 도구 및 프로젝트 구성 사용 지침 프론트엔드 기술의 지속적인 발전으로 인해 프론트엔드 프레임워크는 개발자들로부터 점점 더 많은 관심을 받고 있습니다. 프런트 엔드 프레임워크의 선두주자로서 Vue.js는 다양한 웹 애플리케이션 개발에 널리 사용되었습니다. Vue-cli는 Vue.js에서 공식적으로 제공하는 명령줄 기반 스캐폴딩으로 개발자가 Vue.js 프로젝트 구조를 빠르게 초기화하여 비즈니스 개발에 더 집중할 수 있도록 도와줍니다. 이번 글에서는 Vue-cli 설치 및 설치에 대해 소개하겠습니다.

vue-cli로 구축된 프로젝트에 액세스하기 위해 nginx를 배포하는 방법 vue-cli로 구축된 프로젝트에 액세스하기 위해 nginx를 배포하는 방법 May 15, 2023 pm 10:25 PM

구체적인 방법은 다음과 같습니다. 1. 백엔드 서버 개체 upstreammixVueServer{serverbaidu.com;#이것은 자체 서버 도메인 이름입니다}를 생성합니다. 2. 액세스 포트 및 역방향 프록시 규칙 서버를 생성합니다.{listen8082;server_namelocalhost;location/{rootE: /mix_vue/dist;# 프로젝트 디렉토리 찾기#indexindex.htmlindex.htm;try_files$uri$uri//index.html;#공식 홈페이지 규정에 따라 구성}location~\.php${proxy_p

vue-cli 프로젝트를 구축하는 데 사용되는 기술 vue-cli 프로젝트를 구축하는 데 사용되는 기술 Jul 25, 2022 pm 04:53 PM

사용된 기술: 1. 양방향 데이터 바인딩 및 구성 요소 시스템을 주요 기능으로 하는 vue-cli 프로젝트의 핵심인 vue.js 3. vue의 상태 관리자인 vuex 애플리케이션 프로젝트 개발 4. GET 또는 POST와 같은 http 요청을 시작하는 데 사용되는 axios 5. vue용으로 특별히 설계된 모바일 UI 구성 요소 라이브러리 6. vue 이벤트 메커니즘을 관리하는 데 사용됨 , 모듈 로드 및 vue-cli 프로젝트 패키저.

코드 표준화 및 버그 감지를 위해 Vue-cli에서 ESLint 사용 코드 표준화 및 버그 감지를 위해 Vue-cli에서 ESLint 사용 Jun 09, 2023 pm 04:13 PM

프론트엔드 기술이 지속적으로 발전함에 따라 우리가 직면한 문제는 점점 더 복잡해졌습니다. 이로 인해 코드가 합리적인 구조와 우수한 모듈형 설계를 가져야 할 뿐만 아니라 코드 유지 관리성과 실행 효율성도 필요합니다. 이 과정에서 코드의 품질과 표준화를 어떻게 확보하는가가 어려운 문제가 되었습니다. 다행스럽게도 코드 표준화 및 버그 탐지 도구의 출현으로 효과적인 솔루션이 제공되었습니다. Vue.js 프레임워크에서 코드 표준화 및 버그 감지를 위해 ESLint를 사용하는 것이 일반적인 선택이 되었습니다. 1. ESL린트

nginx에서 vue-cli에 액세스하여 빌드된 프로젝트를 배포하는 방법 nginx에서 vue-cli에 액세스하여 빌드된 프로젝트를 배포하는 방법 May 28, 2023 pm 01:04 PM

히스토리 모드로 구축된 프로젝트는 백그라운드 기술을 사용해야 합니다. 여기서는 nginx 역방향 프록시를 사용하여 프로젝트를 배포합니다. 구체적인 방법은 다음과 같습니다. 1. 백엔드 서버 개체 upstreammixVueServer{serverbaidu.com;#이것은 자체 서버 도메인 이름입니다}를 생성합니다. 2. 액세스 포트 및 역방향 프록시 규칙 서버를 생성합니다.{listen8082;server_namelocalhost;location/{rootE: /mix_vue/dist;# 프로젝트 디렉토리 찾기 #indexindex.htmlindex.htm;try_files$uri$uri//

See all articles