项目作者: laomu1988

项目描述 :
fis3打包单文件vue组件demo
高级语言: JavaScript
项目地址: git://github.com/laomu1988/fis3-vue-demo.git
创建时间: 2016-06-01T13:04:02Z
项目社区:https://github.com/laomu1988/fis3-vue-demo

开源协议:

下载


使用fis3打包单文件vue组件

在项目开发过程中,我们常把页面拆分成一个个小组件,每个组件由css、模板、js组成。
一般情况下,三个部分我们分别写在不同的文件中,但是假如页面有很多小组件,每个组件都拆分成三个文件,最终就会产生大量的小文件,不便于管理。
这时我们通过将组件的三个部门写在同一个文件来避免多个小文件,并且每个组件一个文件也更加直观。
使用fis3-parser-vue-component

详细说明

1.首先新建一个项目,文件目录如下

  1. +-- index.html
  2. +-- weight
  3. |-- app.vue
  4. +-- js
  5. |-- base
  6. |-- vue.js
  7. |-- mod.js

文件weight/app.vue

  1. // weight/app.vue
  2. <style>
  3. h1 {
  4. color: #f00;
  5. }
  6. </style>
  7. <template>
  8. <h1>{{msg}}</h1>
  9. </template>
  10. <script>
  11. export default {
  12. data () {
  13. return {
  14. msg: 'Hello world!'
  15. }
  16. }
  17. }
  18. </script>

文件index.html

  1. <app></app>
  2. <script src="js/base/mod.js"></script>
  3. <script src="js/base/vue.js"></script>
  4. <script>
  5. var App = require('weight/app.vue');
  6. new Vue({
  7. el: 'body',
  8. components: {
  9. app: App
  10. }
  11. });
  12. </script>

2.安装打包工具

  1. ### 全局安装fis3
  2. npm install fis3 -g -d
  3. npm install fis3-hook-module -g -d
  4. npm install fis3-hook-relative -g -d
  5. npm install fis3-postpackager-loader -g -d
  6. ### es6 vue相关模块
  7. npm install fis-parser-babel-5.x
  8. npm install fis3-parser-vue-component

3.编写fis-conf.js

  1. // fis-conf.js
  2. // 开启模块化包装amd,cmd
  3. fis.hook('module', {mode: 'auto'});
  4. // 使用相对路径。
  5. fis.hook('relative');
  6. fis.match('**', {relative: true});
  7. fis
  8. // 打包vue文件
  9. .match(/\.vue$/i, {
  10. rExt: '.js',
  11. isMod: true,
  12. isJsLike: true,
  13. isComponent: true,
  14. parser: [fis.plugin('vue-component'), fis.plugin('babel-5.x')]
  15. })
  16. // 普通js不增加module名称
  17. .match("*.js", {
  18. isMod: false,
  19. isES6: false,
  20. isComponent: false,
  21. useHash: false,
  22. // 设置js文件为babel解析,支持es6的写法。
  23. // parser: fis.plugin('babel-5.x')
  24. })
  25. .match('::package', {
  26. // npm install [-g] fis3-postpackager-loader
  27. // 分析 __RESOURCE_MAP__ 结构,来解决资源加载问题
  28. // allInOne: true, //js&css打包成一个文件
  29. sourceMap: true, //是否生成依赖map文件
  30. // useInlineMap: true //是否将sourcemap作为内嵌脚本输出
  31. postpackager: fis.plugin('loader', {})
  32. })

4.编译

执行 fis3 release -d output,即可看到文件output/weight/app.js和output/weight/app.css

5. 其他语言支持

  • less,scss等编译语言可以参考fis3-parser-vue-component进行配置
  • 部分编辑器可能不支持单文件vue语法高亮,使用html格式即可