【问题标题】:How to do `cd` and invoke some npm scripts inside csh/sh script?如何在 csh/sh 脚本中执行“cd”并调用一些 npm 脚本?
【发布时间】:2016-06-18 07:15:07
【问题描述】:

我是 linux 和 CSH 脚本的完全新手,我目前正在使用 reactjs + node + npm + webpack 开发一个 UI 项目。

正如你现在可能的那样,我需要运行 webpack 捆绑来获取已编译的文件。

我的项目正在部署在一台 linux 机器上。

这是我的项目结构如下图,

如上所示,我需要在 uibuild.csh 文件中编写一个 csh 脚本,

所以这就是我认为的伪代码,

脚本将从

执行

项目/web-inf/scripts/uibuild.csh

  1. 需要检查Node.js和Npm是否安装, 如果安装了继续 否则退出并抛出错误
  2. 接下来,我需要将目录更改为 project/uisrc/
  3. 接下来,我需要串行执行以下命令

'npm 安装' 'npm 运行构建'

  1. 接下来,当 npm run build 成功时,build 文件将位于 project/uisrc/dist/ 文件夹中。 (我需要检查文件是否存在)。
  2. 之后,我需要将文件从 project/uisrc/dist 移动到 project/ 文件夹。
  3. 然后我需要删除路径 project/uisrc/node_modules 中生成的 node_modules 文件夹
  4. 无错误退出脚本

到目前为止,我已经尝试使用此脚本检查是否安装了节点。

 if(`where node` == "") then
      printf "\nNode.js and Npm not installed. Please install and continue\n";
      exit(1);
   endif

但我不知道如何更改目录和运行脚本??

你能解决这个问题吗?

如果您需要更多详细信息,我很乐意提供。

【问题讨论】:

  • 哇,csh。我不知道那还在附近。 (我刚刚检查过;我的 linux 机器上什至没有安装 csh。)
  • :) :) 这就是他们在这里遵循的过程。呸。也许我可以将其更改为 sh。让我重命名标题。
  • 顺便说一句,如果你还没有看到这个:Csh Programming Considered Harmful(1994,好时光)。

标签: node.js linux webpack csh


【解决方案1】:
if which node > /dev/null ; then
  printf 'Node.js & NPM installed, continue start builing.. \n'
else
  printf '\x1B[31m Node.js & NPM is not installed, exiting now.. \x1B[0m \n'
  exit 0;
fi

printf 'Current working Directory :: '
pwd
cd ../../uisrc/
printf 'Current working Directory :: '
pwd
cd dist/
rm -rf index.html assets fixtures
cd ..
npm install --verbose
npm run build
cd ..
rm -rf index.html assets fixtures
cd uisrc/
mv dist/* ../

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2014-02-15
    • 2022-08-23
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多