如果您使用 Bower 设置 Polymer 应用程序,您将获得无数不需要的文件。想想
- 未导入的标签
- 大多数
/bower_components/
中的 README.md 和文档 - 大多数
/bower_components/
中的演示文件
如果您在 http 服务器上运行它,这并不重要,但如果您想将其捆绑为打包应用程序,它就变得很重要。现在,使用 vulcanize
可以内联所有 html 标签,但是生成的文件仍然具有诸如
<polymer-element [...] assetpath="bower_components/core-icon/">
因此根本没有真正解决问题。我很难相信我是唯一遇到这个问题的人,所以我做错了什么还是什么?
最佳答案
您可以使用Grunt生成您的生产代码。我附上了一个基本的 grunt 配置,它将对您有所帮助。
该脚本假定使用以下 grunt 插件:
grunt-contrib-clean
grunt-contrib-concat
grunt-cssc
grunt-dom-munger
matchdep
示例 grunt.js:
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
dom_munger: {
read: {
options: {
read: [
{selector: 'link', attribute: 'href', writeto: 'CssRefs', isPath: true},
{selector: 'script[src]', attribute: 'src', writeto: 'JsRefs', isPath: true}
]
},
src: 'src/index.html'
},
urlRewrite: {
options: {
remove: ['link', 'script'],
append: [
{selector: 'head', html: '<link href="style/screen.css" rel="stylesheet" />'},
{selector: 'body', html: '<script src="script/main.app"></script>'}
]
},
src: ['dist/index.html']
}
},
concat: {
options: {
separator: ';'
},
dist: {
files: {
'dist/script/main.js': ['<%= dom_munger.data.JsRefs %>']
}
}
},
cssc: {
dist: {
options: {
sortSelectors: false,
lineBreaks: false,
sortDeclarations: false,
consolidateViaDeclarations: false,
consolidateViaSelectors: false,
consolidateMediaQueries: false
},
files: {
'dist/style/screen.css': ['<%= dom_munger.data.CssRefs %>']
}
}
},
clean: {
dist: {
src: ['dist']
}
}
}
);
//Load all required grunt plugins
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
//Custom Tasks
grunt.registerTask('default', ['clean', 'dom_munger:read', 'concat', 'cssc', 'dom_munger:urlRewrite']);
};
这只是一个基本示例,您可以根据需要进行扩展。
关于javascript - 生成 polymer 应用程序的 zip,不含所有非生产文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308461/