标签: npm-scripts

未找到命令:如果使用 Yarn v3 (berry) 运行 package.json 脚本时

我将我们的项目yarn从v1.22升级到v3.1.1。我们使用工作区,所以我有那个插件。一切看起来都很好;其他脚本可以工作,但是当尝试使用 shell 命令时,我收到此错误:

> yarn run start
command not found: if
command not found: then
command not found: fi
Run Code Online (Sandbox Code Playgroud)

这是我们的 package.json 中的脚本:

> yarn run start
command not found: if
command not found: then
command not found: fi
Run Code Online (Sandbox Code Playgroud)

npm-scripts yarnpkg yarnpkg-v3

5
推荐指数
1
解决办法
1201
查看次数

将变量从NPM脚本传递到Webpack

我有一个使用Webpack的生成版本,它使用节点process.env来设置环境变量:

webpack.prod.babel.js:

const DefinePlugin = new webpack.DefinePlugin({
  'process.env': {
    NODE_ENV: JSON.stringify('production'),
    API_URL: JSON.stringify('https://myprodurl.com'),
  },
});
Run Code Online (Sandbox Code Playgroud)

packge.json:

"scripts: {
  "build:prod": "webpack"
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我需要不同的东西.

我需要在NPM脚本中将生产URL设置为变量.

所以,而不是这个:

npm run build:prod
Run Code Online (Sandbox Code Playgroud)

我需要这个:

npm run build:prod --URL https://myprodurl.com
Run Code Online (Sandbox Code Playgroud)

node.js npm webpack npm-scripts

4
推荐指数
1
解决办法
2715
查看次数

使用npm_package_version的npm脚本

在我的package.json文件的脚本部分,我正在尝试重命名目录中的一些文件,但是我想在命令行中注入一个从package.json自身(版本)中获取的值.

所以在下面的build:rename脚本中,我希望它somevalue在执行之前替换script()中的标记.

在这种情况下,我想传入npm_package_version它,以便它是文件名的一部分.我不知所措......

"scripts": {
    "build:copy": "mkdirp dist && cp src/*.js dist/",
    "build:rename": "renamer --regex --find '(.+)(.js)' --replace '$1**somevalue**$2' dist/*"
}
Run Code Online (Sandbox Code Playgroud)

npm package.json npm-scripts

4
推荐指数
1
解决办法
5692
查看次数

获取并发脚本以完成

我正在尝试创建一个脚本来运行端到端测试套件。我目前正在同时使用 angular cli,如下所示:

"e2e": "concurrently \"ng e2e --proxy-config proxy.conf.json\" \"cross-env NODE_ENV=development node server\"",
Run Code Online (Sandbox Code Playgroud)

它运行良好,但我的问题是,显然当ng e2e命令完成时,我的后端服务器没有。测试完成后,有没有办法让整个命令完成?

e2e-testing angular-cli npm-scripts

4
推荐指数
1
解决办法
820
查看次数

为什么npm安装后npm运行prepare脚本,如何停止它?

每当我运行时,npm install <package>它都会安装该软件包,但随后它会自动运行prepare脚本。

值得一提的是,我已经检查postinstallpackage.json中没有脚本。

提前非常感谢女生/男生!:)

node.js npm npm-install npm-scripts

4
推荐指数
4
解决办法
5439
查看次数

Nodejs npm脚本失败,出现"SyntaxError:Unexpected token {"

我刚刚将我的Reactjs项目导入Ubuntu上的新机器并安装了大多数依赖项,并npm install成功地禁用了以下内容:

npm WARN optional Skipping failed optional dependency /react-scripts/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.17
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.1.2
Run Code Online (Sandbox Code Playgroud)

尝试运行项目时npm start失败:

> booking-frontend@0.1.0 start /root/17-visit-booker-frontend
> react-scripts start


/root/17-visit-booker-frontend/node_modules/react-scripts/scripts/start.js:33
const {
      ^

SyntaxError: Unexpected token {
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain …
Run Code Online (Sandbox Code Playgroud)

javascript ubuntu node.js npm-scripts

4
推荐指数
1
解决办法
6641
查看次数

我可以在1个终端中运行两个正在进行的npm命令

我的npm脚本中有这两个命令

"scripts": {
"webpack": "webpack --config webpack.config.js --watch",
"server": "nodemon server.js",
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,每次保存文件时都会运行webpack,而只使用nodemon运行服务器,因此每次保存文件时都不必输入"npm start"或类似的内容.

现在这个工作正常,但我需要2个终端打开它来运行它,它在我的屏幕上有点拥挤.

我不能像这样读一个命令:

"start": "npm run webpack && npm run server"
Run Code Online (Sandbox Code Playgroud)

因为webpack命令正在进行,并且永远不会到达第二个命令.

有没有办法在1个终端中使用这两个命令,这是否可取?

node.js npm nodemon webpack npm-scripts

4
推荐指数
1
解决办法
1555
查看次数

从构建 React.js 中排除 .js 文件

我想知道是否有办法从中排除 .js 文件

npm run build

我试过添加

"build": "react-scripts build && rm -rf build/config-local.js",
Run Code Online (Sandbox Code Playgroud)

进入package.json但它告诉我:

rm is not recognized as a function

这个问题有简单的解决方案吗

谢谢

npm reactjs npm-scripts

4
推荐指数
1
解决办法
5832
查看次数

您如何在npm脚本中正确使用parallelshell?

我正在尝试将并行外壳与Windows上的节点项目一起使用,以同时运行两个进程。

这是我的package.json文件的脚本部分:

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

}

当我运行命令时,出现npm start以下错误日志:

TypeError [ERR_INVALID_ARG_TYPE]: The "options.cwd" property must be of type string. Received type function
at normalizeSpawnArguments (child_process.js:420:11)
at spawn (child_process.js:522:38)
at C:\Users\Daniel\Documents\development\online_classes\coursera_uhk_web_dev\Bootstrap4\conFusion\node_modules\parallelshell\index.js:104:17
at Array.forEach (<anonymous>)
at Object.<anonymous> (C:\Users\Daniel\Documents\development\online_classes\coursera_uhk_web_dev\Bootstrap4\conFusion\node_modules\parallelshell\index.js:100:6)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32) …
Run Code Online (Sandbox Code Playgroud)

node.js npm npm-scripts

4
推荐指数
3
解决办法
1756
查看次数

Stylelint 作为 npm 脚本默默失败

我正在为一个项目设置 stylelint,从 cli 运行时,一切都按预期工作:

$ stylelint 'css/**/*.css' --fix

css/style.css
 20:18  ×  Expected newline after ":" with a multi-line declaration declaration-colon-newline-after
...
...
Run Code Online (Sandbox Code Playgroud)

但是,当作为npm script无输出运行时(超出记录命令)并且错误似乎被忽略:

$ npm run stylelint

> project lint:css path/project
> stylelint 'css/**/*.css' --fix    
Run Code Online (Sandbox Code Playgroud)

包.json

  "scripts": {
    ...
    "stylelint": "stylelint 'css/**/*.css' --fix"
  },
Run Code Online (Sandbox Code Playgroud)

知道当 stylelint 作为 npm 脚本运行时如何获取控制台输出并退出错误吗?

javascript npm package.json stylelint npm-scripts

4
推荐指数
1
解决办法
735
查看次数