我将我们的项目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) 我有一个使用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) 在我的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) 我正在尝试创建一个脚本来运行端到端测试套件。我目前正在同时使用 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命令完成时,我的后端服务器没有。测试完成后,有没有办法让整个命令完成?
每当我运行时,npm install <package>它都会安装该软件包,但随后它会自动运行prepare脚本。
值得一提的是,我已经检查postinstall了package.json中没有脚本。
提前非常感谢女生/男生!:)
我刚刚将我的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) 我的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个终端中使用这两个命令,这是否可取?
我想知道是否有办法从中排除 .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
这个问题有简单的解决方案吗
谢谢
我正在尝试将并行外壳与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) 我正在为一个项目设置 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 脚本运行时如何获取控制台输出并退出错误吗?
npm-scripts ×10
npm ×7
node.js ×5
javascript ×2
package.json ×2
webpack ×2
angular-cli ×1
e2e-testing ×1
nodemon ×1
npm-install ×1
reactjs ×1
stylelint ×1
ubuntu ×1
yarnpkg ×1
yarnpkg-v3 ×1