fex-team / fis3

FIS3
http://fis.baidu.com
BSD 2-Clause "Simplified" License
2.79k stars 694 forks source link

release 到远端机,有文件夹被忽略 #932

Open Elaine87 opened 8 years ago

Elaine87 commented 8 years ago

fis3 release 到远端机,project.ignore没有设置忽略widget/component/*.vue,但是发布的时候这个文件夹被莫名的忽略了,只有发布到远端机的时候有这种问题,发布到本地是没有问题的。这可能是什么原因造成的?怎么处理?

hefangshi commented 8 years ago

提供一下文件配置?

Elaine87 commented 8 years ago
fis.require('jello')(fis);

/************* 定义 *************/
fis.set('namespace','bapp');
// fis.set('roadmap.domain', '');
fis.set('project.ignore',['fis-conf.js','output/**','node_modules/**','.git/**','**/package.json']); 
/************* 配置 *************/
// 引入同名js/css
// 引入同名js/css,使用/widget/**,会导致js依赖中误导入less文件,暂不明原因
// 
fis.match('*.vm', {
    useSameNameRequire: true
});

// 加md5
fis.match('*.{js,css,less,scss,png,jpg,gif}', {
    useHash: true
});
// fis.match('/static/js/**', {
//     isMod: true
// })
/************* 编译阶段 *************/
// 编译less,并自动给 css 属性添加前缀
fis.match('*.less', {
    parser: fis.plugin('less'),
    rExt: '.css',
    preprocessor: fis.plugin('autoprefixer', {
        "browsers": ["Android >= 2.1", "iOS >= 6", "chrome >= 35" ,"firefox >= 30"],
        "cascade": true
    })
});
// 配置编译插件

fis.match('widget/**.vue', {
    isMod: true,
    rExt: 'js',
    useSameNameRequire: true,
    parser: fis.plugin('vue-component', {
        cssScopeFlag: 'vuec'
    })
})

fis.match('*.{js,jsx}',{
    parser: fis.plugin('babel-5.x'),
    isMod: true,
    rExt: '.js'
})
fis.match('static/js/debuggap.js',{
    isMod: false,
    parser:null
})
// fis.match(/\.vue$/i, {
//     rExt: '.js',
//     isMod: true,
//     parser: fis.plugin('vue')
// })

// 配置静态资源路径
fis.match(/^\/test\/(.*)$/i, {
    isMod: false,
    useHash: false,
    release: '${statics}/${namespace}/test/$0',
    url: '${statics}/${namespace}/test/$0'
});

/************* 打包阶段 *************/
// 启用 fis-spriter-csssprites 插件
fis.match('::package', {
    spriter: fis.plugin('csssprites')
});
// 打包文件
// fis.match('**/zepto/{*,**/*}.js', {
//     packTo: 'pkg/zepto.js'
// });

/************* 发布环境 *************/
// 线上环境配置
fis.media('prod').match('*.js', {
    optimizer: fis.plugin('uglify-js')
}).match('*.{css,less}', {
    optimizer: fis.plugin('clean-css')
}).match('*.png', {
    optimizer: fis.plugin('png-compressor')
});

// deploy环境
fis.media('rd')
.match('*.{html,js,css,scss,less,png,jpg,gif,json}', {
    deploy: fis.plugin('http-push', {
        receiver: 'http://xxxxxxx:8999/receiver',
        to: '/root/backend_service/tomcat/webapps/ROOT/'
    })
}).match('*-map.json', {
    release: '/static/fis-vm/config/$0',
    deploy: fis.plugin('http-push', {
        receiver: 'http://xxxxx:8999/receiver',
        to: '/root/backend_service/tomcat/webapps/ROOT/'
    })
}).match('*.vm', {
    release: '/static/fis-vm/views/${namespace}/$0',
    deploy: fis.plugin('http-push', {
        receiver: 'http://xxxx:8999/receiver',
        to: '/root/backend_service/tomcat/webapps/ROOT/'
    })
});
hefangshi commented 8 years ago

fis.media('rd')这里面我没看到有配置vue文件的部署啊

Elaine87 commented 8 years ago

fis.match('widget/**.vue', { isMod: true, rExt: 'js', useSameNameRequire: true, parser: fis.plugin('vue-component', { cssScopeFlag: 'vuec' }) })

这里已经把vue文件编译为了js文件,发布的时候不应该是发布js文件吗? 其中一台虚拟机有这种问题,我发布到自己的虚拟机上就没有这个问题 这有可能是编译---发布时序问题造成的吗?

hefangshi commented 8 years ago

release的时候也match vue文件看看

Elaine87 commented 8 years ago

release 的时候watch vue文件可以的。这会是什么原因造成的呢?因为之前一直是OK的,突然就不能release这个vue文件了

hefangshi commented 8 years ago

因为默认就会watch所有文件,但是你的deploy配置并没有vue文件。