如何自动化javascript开发,而不是每次都创建新的项目结构
我想避免为所有项目创建项目结构的麻烦,这样我就可以使用linting和fixed。我(在最后)采用了一种方法,但我很确定有一种更优雅的解决方案。总之,一般来说,步骤如下:如何自动化javascript开发,而不是每次都创建新的项目结构,javascript,npm,vim,eslint,prettier,Javascript,Npm,Vim,Eslint,Prettier,我想避免为所有项目创建项目结构的麻烦,这样我就可以使用linting和fixed。我(在最后)采用了一种方法,但我很确定有一种更优雅的解决方案。总之,一般来说,步骤如下: 创造 使用npm安装所有软件包 用于: 创造 安装插件并创建规则 集成插件(等) 对每个新项目重复此步骤 对于npm安装,我知道-g可以全局安装,但如果我将.eslintrc.json放在我的主文件夹中,当我在VIM中打开它时,它会说它无法加载插件(airbnb、prettier等)样式指南。大概是因为我的项目文件夹中
- 创造
- 使用npm安装所有软件包
- 用于:
- 创造
- 安装插件并创建规则
- 集成插件(等)
- 对每个新项目重复此步骤
-g
可以全局安装,但如果我将.eslintrc.json
放在我的主文件夹中,当我在VIM中打开它时,它会说它无法加载插件(airbnb、prettier等)样式指南。大概是因为我的项目文件夹中没有node_modules文件夹
因此,我决定创建一个模板文件夹,其中包含上述序列中的所有内容。并将该结构复制到一个文件夹中,在该文件夹中,我将从VIM以autocmd
的形式打开我的.html
、.css
、.js
或.json
文件
这是我的.vimrc
autocmd FileType javascript,json,css,html silent exec '! '.$HOME.'/Documents/eslint-template/prepare.sh
下面是prepare.sh
:
$ cat Documents/eslint-template/prepare.sh
#!/bin/bash
echo Preparing environment...
templateFolder=$HOME/Documents/eslint-template
files=( $templateFolder/{.,}* )
for file in ${files[@]}; do
[ "$(basename $0)" == "$(basename $file)" ] && continue
destFile=$PWD/$(basename $file)
diff -q $file $destFile > /dev/null 2>&1 ||
cp -r $file $PWD/
done
rsync -azz --delete $templateFolder/node_modules/ node_modules/ > /dev/null 2>&1
echo Preparation completed!
我一直在调整和测试,它工作得很好(不过我会运行更多测试)。但是打开一个简单的.html
文件可能需要10到15秒,因为它必须将整个结构从模板复制到新项目中。在VIM中运行时,即使是来自的-zz
选项似乎也比直接从终端运行慢得多
所以,问题是,还有什么其他方法可以做到这一点呢?您可以使用类似的方法。您可以将项目结构放入
templates
文件夹中。请避免将node\u模块
放在那里,因为我们始终可以安装package.json中列出的依赖项。您可以使用类似的方法。您可以将项目结构放入templates
文件夹中。请避免将node_modules
放在那里,因为我们总是可以安装package.json
中列出的依赖项,但避免每次下载一堆包正是我想要避免的事情。存储node_modules文件夹是一种不好的做法。对于更大的项目,大小可以达到千兆字节。另外,MacOS中的node_模块文件夹可能在其他平台上运行不好。但无论如何,我会在项目级别使用node_模块文件夹,不是吗?你的意思是我不需要存储两次模块(一个用于项目,另一个用于模板),对吗?但如果我有10个项目,我会将其存储10次,而不是10+1(模板),这开始失去意义,不是吗?在我看来,节省空间的理想方法是使用全局节点模块,但我不能,正如我所发布的。至于平台,为什么我要尝试使用从一个系统到另一个系统的模块?我在同一台机器里问。不是每个项目的node_模块都是一样的。在一个项目中,您将需要与在另一个项目中不需要的相同的包。此外,有时您需要在一个项目中支持旧版本,在另一个项目中支持新版本。仅使用一个全局包很难做到这一点。但避免每次下载一堆包正是我想要避免的事情。存储node_modules文件夹是一种不好的做法。对于更大的项目,大小可以达到千兆字节。另外,MacOS中的node_模块文件夹可能在其他平台上运行不好。但无论如何,我会在项目级别使用node_模块文件夹,不是吗?你的意思是我不需要存储两次模块(一个用于项目,另一个用于模板),对吗?但如果我有10个项目,我会将其存储10次,而不是10+1(模板),这开始失去意义,不是吗?在我看来,节省空间的理想方法是使用全局节点模块,但我不能,正如我所发布的。至于平台,为什么我要尝试使用从一个系统到另一个系统的模块?我在同一台机器里问。不是每个项目的node_模块都是一样的。在一个项目中,您将需要与在另一个项目中不需要的相同的包。此外,有时您需要在一个项目中支持旧版本,在另一个项目中支持新版本。只有一个全球方案很难做到这一点。