首页 > 解决方案 > 如何自动化而不是每次都为javascript开发创建新的项目结构

问题描述

我想避免为我的所有项目创建项目结构的麻烦,这样我就可以使用ALE linting 和 fix。我采取了一种方法(最后),但我很确定有一个更优雅的解决方案。无论如何,一般来说,步骤是:

对于 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 中运行时,似乎也比直接从终端运行要慢得多。

所以,问题是,有什么其他的选择来做到这一点?

标签: javascriptnpmvimeslintprettier

解决方案


您可以使用类似于此CLI 工具的工具。您可以将项目结构放在templates文件夹中。请避免放在node_modules那里,因为我们总是可以安装package.json.


推荐阅读