Closed AprilLemon closed 2 months ago
我自己在本地试了一下,是可以正常工作的。
工作目录:
|-- linker
|-- package.json
|-- index.mjs
|-- project
|-- index.mjs
linker/*
:
// package.json
{
"name": "linker",
"version": "1.0.0",
"description": "npm link test",
"main": "index.mjs",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {}
}
// index.mjs
export function add(a, b) {
return a + b;
}
project/index.mjs
:
import { add } from 'linker';
const ret = add(1, 2);
console.log(ret);
"linker/"
目录下执行 npm link
"project/"
目录下执行 npm link linker
"project/"
目录下执行 node index.mjs
结果如下:
请问你在link
之后切换了node
的版本吗,因为nvm-desktop
在设计的时候是保持每个node
版本之间相互隔离的,所以如果中间切换了版本,请重新link
一下。
我自己在本地试了一下,是可以正常工作的。
工作目录:
|-- linker |-- package.json |-- index.mjs |-- project |-- index.mjs
linker/*
:// package.json { "name": "linker", "version": "1.0.0", "description": "npm link test", "main": "index.mjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": {} } // index.mjs export function add(a, b) { return a + b; }
project/index.mjs
:import { add } from 'linker'; const ret = add(1, 2); console.log(ret);
"linker/"
目录下执行npm link
"project/"
目录下执行npm link linker
"project/"
目录下执行node index.mjs
结果如下:
请问你在
link
之后切换了node
的版本吗,因为nvm-desktop
在设计的时候是保持每个node
版本之间相互隔离的,所以如果中间切换了版本,请重新link
一下。
感谢,已解决,当前项目选用版本后,需要将该版本放入系统path中。
感谢你的回复,不过经过本地测试这确实是一个bug。
在执行npm link
添加全局包的时候确实需要跟踪并添加一个shim
到%HOMEPATH%\.nvmd\bin\
目录下,这个我后续支持一下,得先学习一下npm link/unlink
命令的文档。
我先把这个issue
重启开启,后续支持npm link/unlink
的命令之后再关闭,请知悉。
目前在最新的 Release v3.3.0 中已经修复了这个问题,支持 npm 的 link
& unlink
& update
命令
那么我就先将此 issue
关闭了,当然后续如果有任何问题都可以随时重新开启,谢谢 🌹
自己写了一个脚手架test-cli,用npm link到全局,npm ls -g 中存在test-cli,但是执行test-cli无效,无法将“test-cli”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再 试一次。。另外一台电脑直接安装官方node版本包,测试结果是正常的。