我有以下早午餐配置:
module.exports = {
npm: {
styles: {
'bootstrap': ["dist/css/bootstrap.min.css", "dist/css/bootstrap-theme.min.css"],
'react-select' : ["dist/react-select.min.css"],
'react-datepicker': ["dist/react-datepicker.min.css"],
'font-awesome': ["css/font-awesome.min.css"]
}
},
conventions: {
ignored: [
/\.spec.js$/
]
},
files: {
javascripts: {
joinTo: {
'app.js': /^app\//, // all code from 'src/'
'vendor.js': /^(?!app\/)/ // all BUT src code - 'vendor/', 'node_modules/', etc
}
},
stylesheets: {
joinTo: {
'app.css': /^app/,
'vendor.css': /^(?!app)/
}
}
},
plugins: {
babel: {
presets: ['es2015', 'react'],
plugins: ["transform-object-rest-spread"]
},
eslint: {
pattern: /^app\/.*\.js?$/
},
sass: {
mode: 'native'
},
copyfilemon: {
'fonts': ['node_modules/bootstrap/fonts', 'node_modules/font-awesome/fonts']
}
}
};
通常效果很好。但是,在构建服务器上运行具有相同确切版本节点的同一个确切配置,npm和brunch将不会构建vendor.css。每个其他文件都正确构建到public /中,只缺少vendor.css。
在服务器上,唯一的区别是早午餐由jenkins作为管理员帐户运行。但是,代码也在同一个用户下签出,因此没有权限问题所以我绝对难以接受。