我不想使用grunt或gulp来编译ts文件.我只想在我的package.json中这样做:
"scripts": {
"build": "tsc main.ts dist/"
},
Run Code Online (Sandbox Code Playgroud)
可能吗?
要在npm脚本中访问变量,您可以在以下内容中执行以下操作package.json
:
"scripts": {
"preinstall": "echo ${npm_package_name}"
}
Run Code Online (Sandbox Code Playgroud)
问题是只能在Unix中使用,而不能在Windows中使用%npm_package_name%
.
有没有办法让这个OS独立?在调用命令之前,如果npm可以执行这样的变量扩展,那将是很好的.
是否有相当于纱线分辨率功能的npm ?在npm package.json docs中没有提到它.
例如,我想在3.3.2安装lerna@3.3.2及其中一个依赖项(@ lerna/publish).目前使用像这样的纱线,但更喜欢使用npm而不是手动更改package-lock.json或类似的任何狡猾.
"devDependencies": {
"lerna": "3.3.2",
},
"resolutions": {
"@lerna/publish": "3.3.2"
}
Run Code Online (Sandbox Code Playgroud) 我想在npm脚本中引用我的包版本,以便在应用程序中显示当前版本.就像是
{
"name": "bla",
"version": "1.0.0",
"author": "bla bla",
"scripts": {
"build": "node VERSION=<<package.version>> build/build.js"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我正在创建一个新的 Angular 项目,并希望所有 Angular 依赖项都来自稳定的第 7 版本。但是,似乎在运行ng new app
命令时 Angular 总是获取最新版本。我的 package.json 显示了来自~8.0.0
.
我知道我可以修改 package.json 并将这些依赖项设置为按照语义 7.xx 获取,但我更希望它自动完成,这样我就不会遇到与任何对等依赖项不匹配的机会.
那么,有没有办法告诉 CLI 获取特定的 angular 版本以及根据该 angular 版本的所有依赖项。
编辑:我已经尝试过安装 @angular/cli@7.xx 即使在我运行 ng 新应用程序之后这样做,我的依赖也会按照第 8 版获取
npm audit fix
旨在自动升级/修复 npm 包中的漏洞。但是,我还没有发现它究竟做了什么来修复这些漏洞。
我认为这npm audit fix
会将依赖项和依赖项的依赖项升级到包的 semver 定义允许的最新版本——实际上与rm package-lock.json; npm install
. 但是npm audit fix
在锁定文件删除+重新安装后仍然会执行很多更改。
究竟是npm audit fix
做什么的?例如,它是否安装了比相应package.json
(但仍与 semver 兼容)允许的版本更新的依赖项版本?
Node.js
16.14.2、8.19.2 npm
。
我正在尝试运行一个Node.js
导入OrbitDB
. 这是脚本:
hello_orbitdb.js
// import the package
const OrbitDB = require('orbit-db');
Run Code Online (Sandbox Code Playgroud)
这是我尝试运行它的方式以及我收到的错误:
$ node hello_orbitdb.js
node:internal/modules/cjs/loader:488
throw e;
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './cid' is not defined by "exports" in /node_modules/multiformats/package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:453:9)
at packageExportsResolve (node:internal/modules/esm/resolve:671:7)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/node_modules/orbit-db/src/orbit-db-address.js:3:17) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}
Run Code Online (Sandbox Code Playgroud)
所以我看了一下/node_modules/orbit-db/src/orbit-db-address.js
,它是这样开始的:
'use strict'
const …
Run Code Online (Sandbox Code Playgroud) 我试图在package.json中指定节点引擎来接受它们8
和10
版本.
我试着输入这个:
"engines": {
"node": "8.x|10.x"
},
Run Code Online (Sandbox Code Playgroud)
但运行yarn
结果:
引擎"节点"与此模块不兼容.预期版本"8.x | 10.x"
如果我替换为:
"engines": {
"node": "10.x"
},
Run Code Online (Sandbox Code Playgroud)
......它有效(即没有错误).
有没有办法接受两个版本的节点引擎package.json
?
在各种 React 文档中,我看到它被添加为 prod 依赖项,但我不明白为什么。它不应该是 devDependy,因为 SASS 只在开发过程中被编译,当推送到 prod 时,你实际上是在推送编译后的 CSS 文件吗?
究竟什么是未来中的package.json依赖意味着什么呢?
"dependencies": {
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router-dom": "next"
}
Run Code Online (Sandbox Code Playgroud) package.json ×10
npm ×8
node.js ×3
javascript ×2
yarnpkg ×2
angular ×1
angular-cli ×1
dependencies ×1
es6-modules ×1
node-modules ×1
node-sass ×1
npm-audit ×1
npm-scripts ×1
reactjs ×1
sass ×1
typescript ×1