标签: npm-scripts

带有 babel-node 和 dotenv 的 npm 启动脚本

我有这个运行良好的脚本

"start": "nodemon -x node -r dotenv/config src/index.js"
Run Code Online (Sandbox Code Playgroud)

我想使用 babel-node 代替 node。所以有新的脚本:

"start": "nodemon -x babel-node --presets=env -r dotenv/config -- src/index.js"
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误

[nodemon] starting `babel-node --presets=env -r dotenv/config src/index.js`
internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module 'pathTo/dotenv/config'
Run Code Online (Sandbox Code Playgroud)

你能帮我吗 ?

javascript nodemon package.json babeljs npm-scripts

3
推荐指数
1
解决办法
3706
查看次数

“$npm_execpath”未被识别为内部或外部命令、程序或可执行批处理文件

标题是发生的错误。我在 package.json 中创建脚本,但我想动态使用npmor yarn。我读过可以使用名为“$npm_execpath”的环境变量来实现此目的,但它不适用于我的配置。这是 package.json 部分的示例:

  "scripts": {
    "start": "run-p start:jsonserver start:dev",
    "start:dev": "node --max_old_space_size=4096 node_modules/webpack-dev-server/bin/webpack-dev-server.js --config ./config/webpack/webpack.standalone.dev.js --open",
    "start:prod": "webpack-dev-server --config ./config/webpack/webpack.standalone.prod.js",
    "start:container": "webpack-dev-server --host 0.0.0.0 --port 4555",
    "start:jsonserver": "node ../Testing.GtP.UI.MockServer/server.js",
    "build:dev": "npm run build:standalone:dev && npm run build:module:dev"
  },
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行“构建”脚本,如下所示:

yarn build / npm run build

但在每个都显示错误:

“$npm_execpath”未被识别为内部或外部命令、程序或可执行批处理文件

我希望你可以帮助我。提前致谢。

npm reactjs package.json npm-scripts yarnpkg

3
推荐指数
1
解决办法
4276
查看次数

package.json:如何测试node_modules是否存在

在package.json内部,是否可以测试node_modules目录是否存在?我的目标是如果不存在则打印一条消息node_module,例如:

node_module not existent: use npm run dist
Run Code Online (Sandbox Code Playgroud)

dist我的 package.json中的脚本在哪里scripts。谢谢。

node.js npm npm-run npm-scripts

3
推荐指数
1
解决办法
5677
查看次数

运行“npm version”脚本时,如何防止进行新提交

当我运行时npm version patch,将进行新的提交。我不想要它。

文档相当模糊。我认为相关的标志是commit-hooks,但我不确定如何使用它。没有例子。

我尝试过不同的模式,例如:

npm version patch --commit-hooks=false

npm version patch --commit-hooks false
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。

npm npm-scripts

3
推荐指数
1
解决办法
5341
查看次数

npm软件包在本地安装时不可用

我与新公共管理上的Web应用程序的工作,我发现一个问题,使用需要终端命令,像这样的一些运行包时nodemonconcurrently

我通过安装

sudo npm install --save-dev nodemon
Run Code Online (Sandbox Code Playgroud)

当我尝试通过以下方式使用它时:

nodemon ./server.js
Run Code Online (Sandbox Code Playgroud)

我得到一个错误

找不到nodemon命令

和当我同时使用时一样

我也尝试过

sudo npm install --save nodemon 
Run Code Online (Sandbox Code Playgroud)

而且不起作用。

只有在全局安装的情况下才可以使用

sudo npm install -g nodemon
Run Code Online (Sandbox Code Playgroud)

为什么在本地安装时不能使用它?

注意:我可以在以下位置找到可执行文件node_modules/.bin

但这下面的效果不好

node_modules/.bin/nodemon ./server.js
Run Code Online (Sandbox Code Playgroud)

node.js npm nodemon npm-install npm-scripts

2
推荐指数
1
解决办法
4120
查看次数

通过package.json应用可视样式来回显npm脚本中使用的命令

最近有一个构建工具npmpackage.json脚本,我有一些echo命令来说明当前正在运行的管道的哪些部分.

例如(来自我package.json):

{
    "scripts": {
        "clean": "rimraf a-directory/",
        "preclean": "echo \"\n[ Cleaning build directories ]\n\""
    }
}
Run Code Online (Sandbox Code Playgroud)

当我Bash:npm run clean它打印我的echo消息,然后清理适当的目录.

我想改变颜色,字体重量,背景文字颜色以使这些echo陈述脱颖而出并且一目了然地提供更多信息,但我甚至努力找到一个可以让我无法做到这一点的起点.

有很多关于在常规CLI/Bash脚本,通过gruntgulp/或通过JS脚本执行此操作的信息,但我发现没有任何东西是从脚本部分尝试它package.json.

我错过了什么?所有帮助赞赏.

非常感谢.

build-tools echo npm package.json npm-scripts

2
推荐指数
1
解决办法
1479
查看次数

为什么不能通过Npm脚本运行BASH脚本来设置Env变量?

我有一个nodejs javascript项目,但我想在本地设置一堆环境变量。创建了一个仅导出一些变量的bash文件:

#!/usr/bin/env bash

export waka=flaka
export fat=booty
Run Code Online (Sandbox Code Playgroud)

当我使用点作为源代码并从命令行运行文件时,它工作正常:

. ./env.sh
Run Code Online (Sandbox Code Playgroud)

我可以看到变量已设置

echo $waka  # prints "flaka"
Run Code Online (Sandbox Code Playgroud)

但是然后我尝试通过将此命令添加到我的package.json中,使其成为npm脚本。

scripts: {
  "set-env": ". ./env.sh",
  ...
 }
Run Code Online (Sandbox Code Playgroud)

然后运行它:

npm run set-env
Run Code Online (Sandbox Code Playgroud)

脚本已运行,但未保存环境变量:

echo $waka  # prints undefined (assuming you didn't already run it from command line)
Run Code Online (Sandbox Code Playgroud)

因此,我想知道为什么它不将环境变量保存为npm脚本,以及是否有可能以某种方式从npm脚本运行bash脚本,以便将环境变量保存到命令提示符的其余部分。会议。谢谢!

bash npm npm-scripts

2
推荐指数
1
解决办法
495
查看次数

npm v6.4.1没有在docker中运行`prepare`

我正在尝试在Docker容器中安装软件包,但prepare脚本未运行。

这是Dockerfile复制问题的:

FROM ubuntu:18.04
# Replace shell with bash so we can source files to use npm
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get update && apt-get upgrade -y
RUN apt-get install wget git -y
RUN wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
RUN source ~/.nvm/nvm.sh; nvm install v10.12.0; nvm use v10.12.0
RUN mkdir -p /usr/app/
WORKDIR /usr/app/
RUN source ~/.nvm/nvm.sh; npm install jcollard/d3-ng2-service#jcollard/add-dist
Run Code Online (Sandbox Code Playgroud)

在尝试直接从github安装软件包之前,以上安装nvm并切换到使用node v10.12.0和,npm v6.4.1然后会失败。

$ docker …
Run Code Online (Sandbox Code Playgroud)

node.js npm docker npm-install npm-scripts

2
推荐指数
1
解决办法
1094
查看次数

"IF"Condtitional之后的连锁命令使用&

我试图检查是否已创建文件夹如果不创建文件夹

IF NOT EXIST dist\\js (MKDIR dist\\js)
Run Code Online (Sandbox Code Playgroud)

然后无论它是否创建了我想要运行的文件夹

& uglifyjs dev/*.js -m -o dist/js/app.js
Run Code Online (Sandbox Code Playgroud)

现在似乎&不起作用.如果文件夹存在,则不执行第二个命令.

如果我使用以下作为我的第一个声明:

IF NOT EXIST dist\\js (MKDIR dist\\js) ELSE (Echo exist)
Run Code Online (Sandbox Code Playgroud)

第一次我把两个一起运行,如:

IF NOT EXIST dist\\js (MKDIR dist\\js) ELSE (Echo hate) & echo Love & uglifyjs dev/*.js -m -o dist/js/app.js
Run Code Online (Sandbox Code Playgroud)

文件夹被创建但是没有创建app.js文件.只有当我再次运行该命令时,它才会创建app.js文件.

现在我如何最好检查是否有一个文件夹,然后继续下一个命令.

windows cmd batch-file npm-scripts

2
推荐指数
1
解决办法
83
查看次数

运行并行Shell Node.js脚本时出现问题

在我的package.json文件中,我具有以下脚本:

"scripts": {
    "start": "npm run watch:all",
    "test": "echo \"Error: no test specified\" && exit 1",
    "lite": "lite-server",
    "sass": "node-sass -o sass/ css/",
    "watch:sass": "onchange 'sass/*.scss' -- npm run sass",
    "watch:all": "parallelshell 'npm run watch:sass' 'npm run lite'"
  }
Run Code Online (Sandbox Code Playgroud)

每当我运行代码时,我都会收到以下错误消息:

 crs@1.0.0 start /home/hazem/crs
> npm run watch:all


> crs@1.0.0 watch:all /home/hazem/crs
> parallelshell 'npm run watch:sass' 'npm run lite'

child_process.js:422
    throw new ERR_INVALID_ARG_TYPE('options.cwd', 'string', options.cwd);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "options.cwd" property must be of type string. Received type function
    at …
Run Code Online (Sandbox Code Playgroud)

json sass node.js lite-server npm-scripts

2
推荐指数
1
解决办法
984
查看次数