标签: 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 脚本,这很好。但是,受限于它不能告诉我当前的工作路径 ($PWD)。

假设有一个这样的命令:

"scripts": {
  ...
  "pwd": "echo $PWD"
}
Run Code Online (Sandbox Code Playgroud)

如果我npm run pwd在项目根目录的子文件夹中运行(例如,$PROJECT_ROOT/src/nested/dir),它不会打印出我当前的路径$PROJECT_ROOT/src/nested/dir,而是总是$PROJECT_ROOT返回。有没有办法告诉 NPM 脚本使用我当前的工作目录而不是解析到package.json所在的位置?

基本上,我想将 Yeoman 生成器拉入现有项目并通过 NPM 脚本使用它,以便每个人都可以使用共享知识(例如npm run generator),而不是学习任何特定于 Yeoman 的东西(例如npm i yo -g; yo generator)。由于生成器根据当前工作路径生成文件,而 NPM 脚本始终解析为项目根目录,因此我无法在打算使用的地方使用生成器。

pwd yo npm-scripts

6
推荐指数
2
解决办法
5683
查看次数

不要在devDependencies上运行npm脚本postinstall

我正在创建一些私有的npm包,并postinstall在这些包上有一个脚本.postinstall当我在软件包上开发时,脚本运行良好,但我遇到的问题是当我将软件包引入另一个项目并进行安装时,它正在运行devDependency postinstall脚本.

我不希望它这样做,我只想让它做,postinstall如果我从该目录进行安装.我怎么能这样做或者我可以使用什么而不是在不遇到postinstall这个问题的情况下完成同样的事情呢?

npm npm-install npm-scripts

6
推荐指数
0
解决办法
259
查看次数

在 windows 上配置 package.json

我正在尝试在 windows 上管理 react 项目的配置,它以前在 mac 上运行。我正在使用yarn build. 里面package.json scripts>build被配置为"rm-rf deployment/static;react-scripts build && mv build deployment/static". 由于rm-rfandmv命令适用于 Linux,我尝试使用rmdir/delandmove代替.. 但它似乎不起作用。我收到错误:Parameter format not correct - "static"

npm reactjs package.json npm-scripts yarnpkg

6
推荐指数
2
解决办法
7674
查看次数

如何检测脚本是使用 npm 还是 yarn 运行?

我需要为 npm 和 yarn 编写通用脚本。

npm 的 package.json:

{
  "scripts": {
    "build:clean": "rim-raf dist",
    "test:clean": "rim-raf coverage",
    "clean": "npm run build:clean; npm run test:clean"
  }
}
Run Code Online (Sandbox Code Playgroud)

纱线的 package.json:

{
  "scripts": {
    "build:clean": "rim-raf dist",
    "test:clean": "rim-raf coverage",
    "clean": "yarn run build:clean; yarn run test:clean"
  }
}
Run Code Online (Sandbox Code Playgroud)

用于 npm 和 yarn 的 package.json:

我通常使用小技巧:***$_***
{
  "scripts": {
    "build:clean": "rim-raf dist",
    "test:clean": "rim-raf coverage",
    "clean": "$_ run build:clean; $_ run test:clean"
  }
}
Run Code Online (Sandbox Code Playgroud)

但有时它不能正常工作。

存在一些合法的方法来做到这一点?

node.js npm npm-scripts yarnpkg

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

如何在没有现在的情况下在本地构建 NextJS 项目

我需要在本地构建我的 React NextJS 项目在 Appache 服务器上托管它,当我运行命令时run build它没有生成构建文件夹。

IR&D,每个人都推荐,ZEIT – Next.js build with Now但它在云上构建项目,但我需要为我的本地appache服务器构建。所以请帮帮我。

这是我的 package.json:

......
"scripts": {
"dev": "node server.js",
"build": "next build",
"start": "next start"
},
......
Run Code Online (Sandbox Code Playgroud)

javascript reactjs npm-scripts next.js

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

使用babel-preset-env的Babel似乎忽略了浏览器列表配置

我正在用npm脚本中的browserslist测试Babel。

这是我当前的package.json,Babel正在按照我的期望进行操作:

{
  "name": "npm-scripts-igloo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "devserver": "live-server",
    "watch-sass": "node-sass sass/style.scss css/style.css --output-style expanded --watch",
    "compile-sass": "node-sass sass/style.scss css/style.compiled.css --output-style expanded",
    "prefix-css": "postcss css/style.compiled.css --use autoprefixer -o css/style.prefix.css",
    "compress-css": "node-sass css/style.prefix.css css/style.min.css --output-style compressed",
    "build-css": "npm-run-all compile-sass prefix-css compress-css",
    "babel": "babel app.js --watch -o js/app.compiled.js",
    "start": "npm-run-all -p devserver watch-sass babel"
  },
  "browserslist": [
    "last 5 versions"
  ],
  "babel": {
    "presets": [
      [
        "env",
        {
          "targets": {
            "browsers": [
              "cover 99.5%"
            ]
          } …
Run Code Online (Sandbox Code Playgroud)

cross-browser package.json babeljs npm-scripts babel-preset-env

6
推荐指数
2
解决办法
931
查看次数

npm package.json:如何包装长的单函数脚本?

我已经创建了一个npm 包脚本npx depcheck,它的参数之一是--ignore,它的值越来越长,我预计会越来越长。

"audit:depcheck": "npx depcheck --specials=bin --ignore-dirs=dist,node_modules --ignores=tslint,gts,ts-node,ts-node-dev,typescript,mocha,winston,passport-springcm,passport-box,passport-dropbox-oauth2,passport-google-oauth20,passport-microsoft,mocha,nyc",
Run Code Online (Sandbox Code Playgroud)

尝试过:我曾尝试将很长的脚本简单地分成新行,但这种方法不符合 JSON 标准。

目标:做同样的事情,但在 110 个字符宽度的编辑器中可读。

npm package.json npm-scripts

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

从 Package.json 脚本运行 BrowserSync 时出错

我已经设置了浏览器同步来使用 nodemon 和 express。我没有使用 gulp 或 grunt,而是通过我的 package.json 文件中的 npm 脚本运行所有内容。

现在,一切正常,但我在运行脚本时遇到错误,想知道错误是关于什么以及如何修复它。

首先,这是我的设置:

{
  "scripts": {
    "dev": "npm run development",
    "dev:css": "postcss assets/css/style.css -o public/assets/css/style.css",
    "dev:sync": "browser-sync start --proxy 'localhost:3000' --files='./views/**/*.html' --no-ui --no-notify",
    "development": "cross-env NODE_ENV=development concurrently \"npm:dev:css\" \"nodemon app.js -e js,html\" \"npm:dev:sync\"",
  },
  "dependencies": {
    "concurrently": "^5.2.0",
    "express": "^4.17.1"
  },
  "devDependencies": {
    "browser-sync": "^2.26.10",
    "cross-env": "^7.0.2"
  }
}

Run Code Online (Sandbox Code Playgroud)

这是错误消息:

 YError: Invalid first argument. Expected boolean or string but received function.
[dev:sync]     at argumentTypeError (C:\laragon\www\projects\startup-reporter--node\node_modules\yargs\build\lib\argsert.js:64:11)
[dev:sync]     at C:\laragon\www\projects\startup-reporter--node\node_modules\yargs\build\lib\argsert.js:45:17 …
Run Code Online (Sandbox Code Playgroud)

node.js express browser-sync package.json npm-scripts

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

npm run dev 在 Laravel 项目中不起作用:TypeError:program.parseAsync is not a function

我在当前正在进行的 Laravel 项目中安装了 vue 和 npm,以学习使用 vue.js 框架进行前端开发。

安装后,教程说我需要运行来查看我在和 中npm run dev所做的更改,运行后我得到了完整的问题日志,我无法集中精力弄清楚发生了什么。../resources/js/components/Posts/Index.vue../resources/js/components/app.jsnpm run dev

0 verbose cli [
0 verbose cli   'D:\\Program Files\\nodejs\\node.exe',
0 verbose cli   'C:\\Users\\Gediminas\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
0 verbose cli   'run',
0 verbose cli   'watch'
0 verbose cli ]
1 info using npm@7.5.3
2 info using node@v14.15.1
3 timing config:load:defaults Completed in 2ms
4 timing config:load:file:C:\Users\Gediminas\AppData\Roaming\npm\node_modules\npm\npmrc Completed in 3ms
5 timing config:load:builtin Completed in 3ms
6 timing config:load:cli Completed in 1ms
7 timing config:load:env Completed …
Run Code Online (Sandbox Code Playgroud)

javascript npm vue.js vue-component npm-scripts

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