问题描述
我们正在使用Phoenix v2.10.17作为构建工具运行Elixir / Brunch应用。
(我知道这是早午餐的旧版本,我们希望尽快更新或移至Webpack。)
在早午餐配置(请参见下文)中,我们使用joinTo
将js / css连接到单独的文件中,这可以按预期工作。
我们面临的问题在于使用"js/vendor.js": /^node_modules/
将来自node_modules的依赖项连接到vendor.js文件中。
这可以工作,因为包括了所有前端依赖项,但是还包括所有devDependencies(例如sinon.js,jsdom等),这导致一个超过5MB的巨大vendor.js文件:(
是否有更好的方法来构建vendor.js并且仅包含前端依赖项?任何帮助将不胜感激!
PS。我在早午餐中读过entryPoints
,其中似乎只包含必需的文件。但是我看不到如何在当前设置中实现这一点。
brunch-config.js
javascripts: {
joinTo: {
"js/vendor.js": /^node_modules/,"js/app.js": ["assets/js/**/*.js"],"js/web.js": [
"lib/my_web/components/**/*.js","lib/my_web/components/**/*.css","lib/my_web/views/**/*.js","lib/my_web/views/**/*.css"
],"js/admin.js": [
"lib/my_admin_web/components/**/*.js","lib/my_admin_web/components/**/*.css","lib/my_admin_web/views/**/*.js","lib/my_admin_web/views/**/*.css"
]
}
},stylesheets: {
joinTo: {
"css/vendor.css": /^node_modules/,"css/app.css": ["assets/css/app.css"],"css/web.css": [
"lib/my_web/components/**/*.css","css/admin.css": [
"lib/my_admin_web/components/**/*.css","lib/my_admin_web/views/**/*.css"
]
}
}
项目结构
project/
├─ assets/
│ ├─ css/
│ │ ├─ app.css
│ │ └─ email.css
│ └─ js/
│ ├─ app.js
│ └─ polyfills.js
├─ lib/
│ ├─ my_web/
│ │ ├─ components/
│ │ │ ├─ foo/
│ │ │ │ ├─ index.js
│ │ │ │ └─ style.css
│ │ │ └─ bar/
│ │ │ ├─ index.js
│ │ │ └─ style.css
│ │ └─ views/
│ │ ├─ foo/
│ │ │ ├─ index.js
│ │ │ └─ style.css
│ │ └─ bar/
│ │ ├─ index.js
│ │ └─ style.css
│ └─ my_admin_web/
│ ├─ components/
│ │ ├─ foo/
│ │ │ ├─ index.js
│ │ │ └─ style.css
│ │ └─ bar/
│ │ ├─ index.js
│ │ └─ style.css
│ └─ views/
│ ├─ foo/
│ │ ├─ index.js
│ │ └─ style.css
│ └─ bar/
│ ├─ index.js
│ └─ style.css
├─ node_modules/
├─ test/
├─ brunch-config.js
└─ package.json
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)