标签: npm-scripts

使用node-sass和postcss autoprefixer生成带有npm脚本的源映射

当将输出从一个输出到另一个时,是否可以使用node-sass和postcss autoprefixer生成完全可用的源图?我目前在package.json中有以下内容:

"scripts": {
    "sass": "node-sass sass/app.scss --source-map true --source-map-embed true",
    "postcss:autoprefixer": "postcss --use autoprefixer -b 'last 2 versions' --map",
    "css": "npm run sass -s | npm run postcss:autoprefixer -s > css/app.css"
}
Run Code Online (Sandbox Code Playgroud)

这会产生一个半工作的内联源图,但是原始文件的链接不正确,因此在Chrome devtools中点击它们将不会加载它们(看起来它们被处理为相对链接,然后从css文件夹中引用).我尝试通过向--source-map-contents truenode-sass 添加选项来修复此问题,但随后autoprefixer错误,我怀疑因为它不喜欢dataUri的行长度.

理想情况下,我更喜欢输出一个单独的.map文件,但设置node-sass选项--source-map css/app.css.map不会写出任何东西,大概是因为只有css输出到stdout.

npm node-sass autoprefixer postcss npm-scripts

6
推荐指数
1
解决办法
4812
查看次数

在npm脚本中匹配多个文件扩展名

我有一个npm脚本,我想要匹配tstsx文件扩展名...如下所示:

"test": "mocha ..... app/test/**/*.spec.{ts,tsx}"
Run Code Online (Sandbox Code Playgroud)

但是,上述语法不起作用.这样做的正确语法是什么?

javascript node.js npm package.json npm-scripts

6
推荐指数
1
解决办法
686
查看次数

如何增加nest.js应用程序中的内存堆?如何在 cli 中使用 --max-old-space-size ?

我正在使用 Nest.js 框架开发 Node.js 项目,并且出现错误“JavaScript 堆内存不足”,我的问题是如何为我的应用程序分配更多内存?我还发现有些人说我应该使用 [--max-old-space-size] 来分配内存,所以我尝试将此选项添加到 package.json 脚本中以具有"start" : "nest start --max-old -space-size=4096” 但它不起作用

javascript node.js express npm-scripts nestjs

6
推荐指数
1
解决办法
1万
查看次数

如何通过命令行将 npm script 设置为空白?

当我运行时npm set-script prepare ""(在 Windows 命令提示符中使用 npm 版本 8.15.0),输出了警告:

npm WARN set-script set-script is deprecated, use `npm pkg set scripts.scriptname="cmd"` instead.

所以我按照上面的说明进行操作npm pkg set scripts.prepare="",这次输出了错误:

npm ERR! code EUSAGE
npm ERR!
npm ERR! npm pkg set expects a key=value pair of args.
Run Code Online (Sandbox Code Playgroud)

当我尝试npm pkg set scripts.prepare=" "(注意空格)时,这有效,但不允许使用空白字符串似乎很奇怪。这是一个错误还是一个功能......还有其他方法吗?

command-line node.js npm npm-scripts

6
推荐指数
1
解决办法
1979
查看次数

在工作区上下文中运行根级 npm 脚本

我在根级 package.json 中定义了一个脚本:

{
  "workspaces": [
    "packages/*"
  ],
  "scripts": {
    "clean": "rm -rf lib dist"
  },
  "private": true
}
Run Code Online (Sandbox Code Playgroud)

我想在包的上下文中运行此脚本packages/example该包未定义cleanscript。(我想在我的所有工作区中重用此脚本

我尝试运行npm -w packages/example run clean,但这些命令在其中npm run clean -w packages/example搜索脚本:cleanpackages/example/package.json

npm ERR! Error: Missing script: "clean"
Run Code Online (Sandbox Code Playgroud)

需要明确的是,我想通过在工作区根目录运行脚本来删除libdist文件夹。packages/example

注意:我使用这个干净的脚本作为示例。真正的脚本更复杂,我不想在所有工作区中复制它们

npm npm-scripts npm-workspaces

6
推荐指数
1
解决办法
414
查看次数

React 构建在本地运行,但在 Amplify 上失败

有什么想法或者如何在不重新开始的情况下调试它吗?在 API、GraphQL 和 CI 上投入了大量时间。

\n

这是一个普通的 create-react-app,在 App.js 中进行了一些细微的更改。使用节点 12.18.3 和 npm 6.14.8 在本地启动和构建。使用 npm@6.9.0 和 node@v10.16.0 进行 Amplify 构建失败。

\n

我试图避免使用自定义 Docker 映像来升级节点和 npm。

\n

编辑以添加 index.js - 构建日志来自尝试将 .js 附加到 ./App 导入

\n

索引.js

\n
import ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n  <React.StrictMode>  \n    <App />\n  </React.StrictMode>,\n  document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some …
Run Code Online (Sandbox Code Playgroud)

npm reactjs npm-scripts aws-amplify

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

在所有其他脚本之前运行 NPM 脚本

我正在寻找一种在使用时运行脚本的方法npm run <script-name>

我当前的用例是我想运行一个脚本,以确保在运行任何其他脚本之前正确设置开发环境。

所以,我需要的是这样的:

{
    "run-before-all-scripts": "./setup_environment.sh",
    "scripts": {
        "script_one": "do something",
        "script_two": "do somethingelse"
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想出的最好的办法是:

{
    "scripts": {
        "setup_environment": "./setup_environment.sh",
        "script_one": "npm run setup_environment && do something",
        "script_two": "npm run setup_environment && do somethingelse"
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想出的唯一更好的解决方案是围绕命令创建一个包装器 shell 脚本npm,这样我就可以调用fancy_npm_run <command>. 但这看起来有点混乱。

有更好的方法来处理这个问题吗?

我已经阅读了多个脚本上的 npm script hook,但它并不是在所有脚本之前运行,也没有得到答复。

node.js npm npm-scripts

5
推荐指数
0
解决办法
3206
查看次数

在 webpack npm 脚本中启动文件之前检查文件是否存在

我有一个像这样的 package.json :

...
  "scripts": {
    "dev": "webpack --config webpack.dev.config.js --mode development --progress --colors",
    "postdev": "if (Test-Path \"./postdev.sh\" ) { echo \"file exists\"; ./postdev.sh }"
  },
...
Run Code Online (Sandbox Code Playgroud)

如何检查文件“postdev.sh”是否存在,然后在 NPM 脚本部分启动它?我在终端中运行该命令并且运行正常,但如果我尝试启动该 npm 脚本,它会显示“意外出现:“./postdev.sh”。”

windows node.js npm webpack npm-scripts

5
推荐指数
2
解决办法
2599
查看次数

如何基于操作系统运行npm

我为每个操作系统都有这 2 个 npm:

"pack": "cd dist/fold1 && type script11.js script22.js script33.js > all.js",
"pack-unix": "cd dist/fold1 && cat script11.js script22.js script33.js > all.js"
Run Code Online (Sandbox Code Playgroud)

我怎样才能使它们成为一个命令?

喜欢: "pack": "cd dist/fold1 && <if win than type else cat> script11.js script22.js script33.js > all.js",

npm npm-scripts

5
推荐指数
2
解决办法
2531
查看次数

未找到命令:如果使用 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
查看次数