究竟什么是未来中的package.json依赖意味着什么呢?
"dependencies": {
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router-dom": "next"
}
Run Code Online (Sandbox Code Playgroud) 我安装了一个包yarn add --dev
,运行它的安装过程,在此期间,软件包安装了几个其他软件包并将它们添加到package.json
(in devDependencies
)中,我假设使用npm.很好,但现在我yarn.lock
的不同步.
什么是正确的,非手动的同步yarn.lock
当前状态的方式package.json
?
编辑:yarn check
显示缺少的包:
error Lockfile does not contain pattern: <package>@<version>
Run Code Online (Sandbox Code Playgroud)
但它不会添加它们.
我试图在我的package.json中包含一个私有BitBucket存储库,但我也想管理该版本,作为一个普通的模块.目前我正在使用这个
"package-name": "git+https://<user>:<password>@<url-repository>.git"
Run Code Online (Sandbox Code Playgroud)
我已经尝试过,但它没有用.
"package-name": "git+https://<user>:<password>@<url-repository>.git#v1.0"
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我报告了许多问题npm audit
,通过运行npm audit fix
它确实修复了其中几个问题。然而,这样做也会由于某种原因破坏我的构建。我想我知道哪个修复导致了问题,但我仍然想修复其他问题。
有没有办法让 npm 在我运行时做任何事情npm audit fix
,但仅限于单个问题/依赖项?
我知道我运行了npm i
,但这也添加了更新的依赖项package.json
(即使带有--package-lock-only
标志),这是我不想要的。我只希望 npm 更新package-lock.json
,就像我运行时一样npm audit fix
,但只是针对选定的问题子集。
在运行yarn install
时,即使我已定义了一个许可证,每次没有许可证时都会看到警告:
$ jq . package.json
{
"name": "license-example",
"version": "1.0.0",
"main": "index.js",
"license": "UNLICENSED",
"dependencies": {
"lodash": "^4.17.4",
"moment": "^2.18.1"
}
}
Run Code Online (Sandbox Code Playgroud)
根据npm定义应该是有效的:
最后,如果您不希望授予他人在任何条款下使用私人或未发布的包裹的权利:
Run Code Online (Sandbox Code Playgroud){ "license": "UNLICENSED" }
这是输出:
yarn install
yarn install v0.27.5
warning ../package.json: No license field
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.09s.
Run Code Online (Sandbox Code Playgroud)
我的主要目标是让警告消失,但我也不想提供无效的开源许可证来使警告继续进行,即使它是一个永远不会在外面看到的内部项目.
如何在没有出现警告的情况下将纱线项目标记为预防措施?
将npm package-lock.json
置于版本控制之下有什么意义?根据我的经验,这个文件源控制引起了比效率提升更多的麻烦和混乱.
拥有package-lock.json
源代码控制下使一个大难题每个人谁添加/删除一个开发者/修改的任何节点模块时需要解决冲突的分支之间.特别是在复杂/大型应用程序上工作,其中package-lock.json可以长达数万行.即使只是吹掉node_modules并运行一个新的,npm install
也会在package-lock中产生剧烈的变化.
关于包锁还有其他几个SO问题:
和一个关于包锁的大量对话的GitHub问题:
这让我觉得仍有广泛的不确定因素需要消除.
根据文件
package-lock.json
为npm修改node_modules树或package.json的任何操作自动生成.
那你为什么要把一个自动生成的文件放在源代码管理下呢?
上面的GitHub问题详细说明了一些人为了应对与package-lock.json的混淆,如何将npm install
脚本更改为rm -f package-lock.json && npm install
,这也感觉不正确.
似乎package-lock.json
正在努力成为节点模块依赖关系的确切版本的真实来源,但这不正是package.json的功能吗?什么时候解决这个文件中的合并冲突的难以忍受的痛苦开始得到回报?
我下载了一个主题,它有一个package-lock.json文件但没有package.json文件.有没有办法可以从package-lock.json文件生成package.json.如何仅使用package-lock.json文件安装节点模块.有没有办法做到这一点?
我是打字稿和表达的新手。我正在尝试使用运行最简单的快速应用程序ts-node-dev
,但出现以下错误。
> ./node_modules/.bin/ts-node-dev src/index.ts 16:07:40
[INFO] 16:07:42 ts-node-dev ver. 1.1.8 (using ts-node ver. 9.1.1, typescript ver. 4.7.2)
Compilation error in /home/lht/microservice/ticketing/auth/src/index.ts
Error: Debug Failure. False expression: Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.
at Object.<anonymous> (/home/lht/microservice/ticketing/auth/src/index.ts:1:7)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Module._compile (/home/lht/microservice/ticketing/auth/node_modules/source-map-support/source-map-support.js:568:25)
at Module.m._compile (/tmp/ts-node-dev-hook-8101223397369532.js:69:33)
at Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at require.extensions.(anonymous function) (/tmp/ts-node-dev-hook-8101223397369532.js:71:20)
at Object.nodeDevHook [as .ts] (/home/lht/microservice/ticketing/auth/node_modules/ts-node-dev/lib/hook.js:63:13)
at Module.load (internal/modules/cjs/loader.js:653:32) …
Run Code Online (Sandbox Code Playgroud) 看起来该包将包含所有文件(未被忽略),即使package.json
它没有"files"
数组也是如此.
该财产是必要的吗?
outDir
在使用时,我似乎无法使标志工作package.json
.目录结构非常简单:tsconfig.json
在根级别,与src/
目录和单个index.ts文件以及表示其他模块的其他目录一起使用.
在tsc
索引文件上运行该命令时,它会在它旁边而不是在构建目录中创建一个新命令.我究竟做错了什么?
我的tsconfig:
{
"compilerOptions": {
"outDir": "build"
}
}
Run Code Online (Sandbox Code Playgroud)
我的npm构建脚本:
"build": "tsc src/index.ts"
Run Code Online (Sandbox Code Playgroud)
我正在从项目的根目录调用脚本.有趣的是,使用--outDir
标志运行相同的脚本可以正常工作.
package.json ×10
npm ×4
node.js ×3
javascript ×2
typescript ×2
yarnpkg ×2
bitbucket ×1
build ×1
dependencies ×1
express ×1
node-modules ×1
npm-audit ×1
npm-install ×1
outdir ×1
ts-node ×1
tsc ×1
webpack ×1