javascript - 如何自动化而不是每次都为javascript开发创建新的项目结构
问题描述
我想避免为我的所有项目创建项目结构的麻烦,这样我就可以使用ALE linting 和 fix。我采取了一种方法(最后),但我很确定有一个更优雅的解决方案。无论如何,一般来说,步骤是:
- 创建package.json
- 使用 npm 安装所有软件包
- 对于eslint:
- 创建.eslintrc.{json,js,yaml}
- 安装插件并创建规则
- 集成插件(airbnb、prettier等)
- 对每个新项目重复此操作
对于 npm 安装,我知道-g
可以全局安装,但是如果我将它.eslintrc.json
放在我的主文件夹中,当我在 VIM 中打开它时,它说它无法加载插件(airbnb、prettier 等)样式指南。大概是因为我的项目文件夹中没有 node_modules 文件夹。
因此,我决定创建一个模板文件夹,其中包含上述序列中的所有内容。并将该结构复制到一个文件夹中,我在该文件夹中以VIM的形式打开我.html
的.css
、.js
或.json
文件。autocmd
这是我的相关部分.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!
我一直在调整和测试,它运行良好(不过我会进行更多测试)。但是打开一个简单的文件可能需要大约 10 到 15 秒,.html
因为它必须将整个node_modules结构从模板复制到新项目。即使是rsync-zz
的选项,当从 VIM 中运行时,似乎也比直接从终端运行要慢得多。
所以,问题是,有什么其他的选择来做到这一点?
解决方案
您可以使用类似于此CLI 工具的工具。您可以将项目结构放在templates
文件夹中。请避免放在node_modules
那里,因为我们总是可以安装package.json
.
推荐阅读
- java - Tomcat 8.5、Netbeans 11.2 异常启动过滤器
- vue.js - 我想调整 v-chip 大小或其他想法来创建带有文本的字段
- angular - 如何在 Angular 8 的嵌套对象数组中存储值
- javascript - 角度变量不更新
- reactjs - 模块解析失败:带有 resolve-url-loader 的意外字符“@”
- javascript - 如何在不下载所有文档的情况下从 RemoteDb 集合中获取带有 minimongo 的文档总数?
- r - Data.table - 减去列对
- r - 使用 tidyverse 按组和整体获取摘要
- artificial-intelligence - 什么是狗定位问题的良好状态空间?
- javascript - 如果父容器发生更改,请避免重新渲染子容器