配置文件package.json:

搜索了配置的原理:https://segmentfault.com/a/1190000000344102

里面讲到:npm会在package.json文件中找script区域,可以使用npm run 命令来运行scripts的任何条目

 "scripts": {
"dev": "node build/dev-server.js",
"build": "node build/build.js",
"lint": "eslint --ext .js,.vue src"
}

可以知道npm run dev及npm run build是运行了相应的哪些文件:

(1)dev-server.js 和 build.js 分别引入了build文件下的 webpack.dev.conf 和 webpack.prod.conf 配置文件,而webpack.dev.conf.js 及 webpack.prod.conf.js文件都引入并整合了 webpack.base.conf.js 文件;

(2)dev-server.js和build.js也都引入了 config/index.js 文件,cinfig/index文件定义了build 和 dev 两个环境的各种参数,如下结构:
 module.exports = {
build: {
env: require('./prod.env'),
index: path.resolve(__dirname, '../dist/index.html'),
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: '/',
productionSourceMap: true,
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
},
dev: {
env: require('./dev.env'),
port: 8888,
autoOpenBrowser: true,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {},
cssSourceMap: false
}
}

引入进去后,分别使用build模块和dev模块里的各种参数

能够在webpack.base.conf.js文件(如下)中看到主入口js文件是main.js

 let webpackConfig = {
entry: {
app: './src/main.js'
},....
}

另外在webpack.dev.conf.js 及 webpack.prod.conf.js 中能看到主入口页面的设置:HtmlWebpackPlugin

 //webpack.dev.conf.js
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true
}) //webpack.prod.conf.js
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
...
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
})

main.js文件很重要,如下,它引入了需要引入的项目中的js、css文件(index.js、base.css),引入了依赖的模块(jsonp、vue、App、router),

新建了vue实例,将模块App挂载在id为app的元素上:

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import '@/common/js/index.js'
import '@/common/stylus/base.css'
import jsonp from 'jsonp'
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false Vue.prototype.URL_PREFIX = 'http://139.196.7.54' Vue.prototype.jsonp = jsonp // 创建 启动应用
// 一定要确认注入了 router
// 在 <router-view> 中将会渲染路由组件
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App }
})

router/index.js中

 import Vue from 'vue'
import Router from 'vue-router'
import login from '@/components/login/login'
import index from '@/components/index/index'
import platelist from '@/components/platelist/platelist'
import choosecars from '@/components/choosecars/choosecars'
import vehiclemonitor from '@/components/vehiclemonitor/vehiclemonitor' // 插件
// 安装 <router-view> and <router-link> 组件
// 且给当前应用下所有的组件都注入 $router and $route 对象
Vue.use(Router) //实例化Router
export default new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'login',
component: login
},
{
path: '/index',
name: 'index',
component: index
},
{
path: '/platelist',
name: 'platelist',
component: platelist
},
{
path: '/choosecars',
name: 'choosecars',
component: choosecars
},
{
path: '/vehiclemonitor',
name: 'vehiclemonitor',
component: vehiclemonitor
}
]
})

Vue-cli开发笔记一----------项目的结构的更多相关文章

  1. Vue Cli 3:创建项目

    一 简介 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,有几个独立的部分. 1 CLI (@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue 命令.(vue ...

  2. vue cli 3.0创建项目

    .npm i -g @vue/cli .vue create my-project 此处有两个选择: 1.default (babel, eslint)默认套餐,提供babel和eslint支持 2. ...

  3. 让我们用Vue cli全家桶搭建项目

    一般项目都会用到这几个,这里不在详细介绍概念,只是简单的使用.一.搭建cli 1.事先安装好cnpm(淘宝镜像) npm install -g cnpm --registry=https://regi ...

  4. vue --- cli build 后的项目,图片路径出错

    今天在插入背景图片过程中,遇到了路径错误的问题,通过网上查询,找到了解决的办法,但是大部分都没有讲造成这种问题的原因,故我简单地总结了一下,并加入了一些自己的理解,欢迎共同探讨~ 当用vue-cli自 ...

  5. 项目中使用vue的API。 和项目的结构

    <template> <!--组件的 结构--> <div id="app"> <h3>{{ msg }}</h3> & ...

  6. Vue基础开发笔记

    以下实例代码地址:https://github.com/NewBLife/VueDev 1,Vue组件导入 新建组件:Header.vue <template> <div> & ...

  7. 使用Vue CLI 3快速创建项目

    首先 vue create ant-design-vue-pro 执行命令会显示两个选项,1默认,2自定义 我么选择自定义 选择好自定义的插件回车就等待下安装成功然后进入项目文件夹 cd ant-de ...

  8. vue cli 构建的 webpack 项目设置多页面

    1. webpack-dev-server下的设置(npm run dev) ./build/webpack.dev.conf.js 中,修改 new HtmlWebpackPlugin ,一个页面一 ...

  9. Vue CLI图形化创建项目

随机推荐

  1. KiCAD更新封装

    KiCAD更新封装 有时候我们画完了PCB,但发现某个封装类型的器件需要修改,可能是修改尺寸,也可能是修封装参考或者值,具体操作如下: 1.首先更新原理图封装 2.从原理图更新到PCB(如果修改了封装 ...

  2. MySQL 复制参数详解

    log-bin 二进制日志 server-id 早起版本必须添加  1-pow(2,32)-1 推荐使用 端口号+ip最后一位  5.6后可以动态修改 server-uuid (5.6以后) 默认存在 ...

  3. 前端学习(十)初识js(笔记)

    js事件(公有属性) onclick=""  当点击...时! onmouseover="" 当鼠标移入...时!onmouseout="" ...

  4. Java基本数据类型的类型转换规则

    基本类型转换分为自动转换和强制转换. 自动转换规则:容量小的数据类型可以自动转换成容量大的数据类型,也可 以说低级自动向高级转换.这儿的容量指的不是字节数,而是指类型表述的范围. 强制转换规则:高级变 ...

  5. bypass_safedog

    1.SQL注入 手工bypass要点 先通过破坏关键字测试出拦截规则 之后进行针对性绕过 1.Mysql 1.1.联合注入 0x01 and绕过 直接 and 1=1 直接就会被拦截 在数值的前面加特 ...

  6. python基础和编程库

    Python编程从入门到实践-------基础入门 1.Python中的变量 2.Python首字母大写使用title()方法,全部大写upper()方法,全部小写lower()方法 3.Python ...

  7. leetcode-13双周赛-1256-加密数字

    题目描述:编码 方法一: class Solution(object): def encode(self, n): if n == 0: return "" n -= 1 A = ...

  8. Minimum Snap轨迹规划详解(1)轨迹规划

    一. 轨迹规划是什么? 在机器人导航过程中,如何控制机器人从A点移动到B点,通常称之为运动规划.运动规划一般又分为两步: 1.路径规划:在地图(栅格地图.四\八叉树.RRT地图等)中搜索一条从A点到B ...

  9. JVM典型配置和调优举例

    1. 堆设置-Xms: :初始堆大小.-Xmx: :最大堆大小.-XX:NewSize=n: :设置年轻代大小.-XX:NewRatio=n: : :设置年轻代和年老代的比值.如:为 3,表示年轻代与 ...

  10. NX二次开发-NXOpen::CoordinateSystemCollection Class Reference

    NX11+VS2013 #include <NXOpen/Section.hxx> #include <NXOpen/SectionCollection.hxx> #inclu ...