我正在寻找一种优化/改进我的同事和我的应用程序方式的好方法.
我们目前都在MacBook Pro(2016)上使用PhpStorm,在我们的网络中使用Ubuntu服务器,并将SMB共享的工作副本映射到我们的机器上(我们有时会编辑相同的文件,这样做很不方便).我们使用Git作为源代码控制,并且我们都有1个分支.
我们注意到在网络共享上使用PhpStorm的性能问题,我们的应用程序非常庞大,并且拥有PhpStorm索引的所有内容都会使其冻结并始终感觉无响应.
我们正在寻找一种方法来改进我们的工作方式,简化应用程序的开发并消除我们对网络共享/工作副本组合的性能问题.
我们正在考虑在我们的机器上本地拥有一个工作副本,具有虚拟化的Web服务器(Vagrant),并且所有应用程序彼此分开运行.这将解决网络问题,但是如果我进行数据库更改,则会带来其他问题,这些更改也必须在我同事的工作副本上完成.
此外,我们一直在对相同的文件进行更改,我们最不希望的是每次进行更改时修复文件冲突,然而不得不拉动另一个开发人员在白天进行的每次提交,以及必须手动进行数据库更改.
TL; DR,有3个开发人员在1个应用程序上工作的好方法.
我正试图找到一种方法来破坏我的模块并使用Babel和Webpack.
如果我从webpack文档(https://webpack.js.org/guides/tree-shaking/)获取示例代码并运行它,那么未使用的模块/函数/其他导出将被标记为未使用的和谐导出,这是预期的结果.在使用-p参数(生产)运行webpack之后,webpack使用UglifyJS删除死的和未使用的代码(到树抖动).
现在,如果我将babel-loader添加到我的webpack配置文件中,我的ES2015模块将被转换,但现在不再标记为未使用的导出.
例如:
export function square(x) {
return x * x;
}
export function cube(x) {
return x * x * x;
}
Run Code Online (Sandbox Code Playgroud)
import {square} from './math.js'
Run Code Online (Sandbox Code Playgroud)
通过webpack运行,没有 babel-loader,该cube
函数将被标记为未使用并在编译生产后删除(-p).
通过带有 babel-loader的webpack运行,该cube
函数将不会被标记为未使用,并将保留在已编译的包中.
我错过了什么?
这是一个可以重现这种情况的演示回购
https://github.com/Milanzor/babel-and-treeshaking-question
如果我添加.babelrc:
{
"presets": [
["@babel/preset-env", {
"useBuiltIns": "entry",
"debug": true,
"targets": {
"browsers": ["last 2 versions"]
}
}]
]
}
Run Code Online (Sandbox Code Playgroud)
我得到相同的结果,但如果我添加modules: false
到preset-env选项,Babel不会将模块编译为ES5,Webpack会将模块再次标记为未使用.
我需要找到一种方法来告诉Webpack我的模块是用Babel编译的,或者我需要找到一种方法告诉Babel自己扫描未使用的代码.
我正在尝试在LESS中创建一个mixin,它将使用它的选择器名称作为混合内部的变量.mixin应该看起来像这样,但我找不到它的确切语法,或者它是否可能:
.bg{
background-image: url('images/@{SELECTORNAME}.png');
}
#header{
.bg;
}
Run Code Online (Sandbox Code Playgroud)
结果是:
#header{
background-image: url('images/header.png');
}
Run Code Online (Sandbox Code Playgroud)
我认为这是不可能的,如果选择器是这样的话会发生什么:
div#menu ul li
Run Code Online (Sandbox Code Playgroud)
这可能不会真正起作用,但也许任何人都知道另一种选择,这在任何其他预处理器中都是可能的.
谢谢!