zoukankan      html  css  js  c++  java
  • vue源码之路径别名的技巧转换

    //以web/entry-runtime.js为例子,base就是web,然后到aliases里去找里面刚好有web,就取到这个路径,再和剩余的/entry-runtime.js拼接,最终经过Rollup的构建打包,最终在dist目录下生成vue.runtime.common.js
    const aliases = require('./alias')
    const resolve = p => {
      const base = p.split('/')[0]
      if (aliases[base]) {
        return path.resolve(aliases[base], p.slice(base.length + 1))
      } else {
        return path.resolve(__dirname, '../', p)
      }
    }
    
    const builds = {
      // Runtime only (CommonJS)builds. Used by bundlers e.g. Webpack & Browserify
      'web-runtime-cjs-dev': {
        //entry表⽰构建的⼊⼝ JS ⽂件地址
        //dest 属性表⽰构建后的 JS ⽂件地址
        //format 属性表⽰构建的格式
        //cjs 表⽰构建出来的 ⽂件遵循 CommonJS 规范,
        // es 表⽰构建出来的⽂件遵循 ES Module 规范。
        // umd 表⽰构建出来的⽂ 件遵循 UMD 规范。
        entry: resolve('web/entry-runtime.js'),
        dest: resolve('dist/vue.runtime.common.dev.js'),
        format: 'cjs',
        env: 'development',
        banner
      },
      ...
    }

    alias.js

    const path = require('path')
    
    const resolve = p => path.resolve(__dirname, '../', p)
    //这是一个对象存放着这些核心路径
    module.exports = {
      vue: resolve('src/platforms/web/entry-runtime-with-compiler'),
      compiler: resolve('src/compiler'),
      core: resolve('src/core'),
      shared: resolve('src/shared'),
      web: resolve('src/platforms/web'),
      weex: resolve('src/platforms/weex'),
      server: resolve('src/server'),
      sfc: resolve('src/sfc')
    }
  • 相关阅读:
    win平台搭建Lnmp环境
    YII2 model where 条件拼接
    yii2框架-yii2局部关闭(开启)csrf的验证
    Yii2 控制器单独向view(layout)传值
    Yii2 数据库基本操作
    PHP 多线程采集
    php 阿拉伯数字转中文
    javascript里的sleep()方法
    PHP数组内容不重复组合排列算法
    git使用经验(一)
  • 原文地址:https://www.cnblogs.com/TTblog5/p/13097915.html
Copyright © 2011-2022 走看看