求助:安装自己的插件时发现package.json异常

自己根据https://github.com/Sheng-Bo/atom-cht-menu写了一个Atom 1.10的完整汉化插件https://github.com/Reedo0910/atom-simplified-chinese-menu,但是在安装后发现出了个较为严重的bug。最后定位到貌似package.json有些异常。

我在提交的时候package.json是这样写的:
{
“name”: “atom-simplified-chinese-menu”,
“main”: “./lib/main”,
“version”: “0.5.9”,
“description”: “Atom 简体中文语言包,提供最新的菜单栏、右键菜单及设置完整汉化”,
“keywords”: [
“Localization”,
“Simplified Chinese”,
“Chinese”,
“chs”,
“简体中文”,
“中文”
],
“repository”: “https://github.com/Reedo0910/atom-simplified-chinese-menu”,
“license”: “MIT”,
“engines”: {
“atom”: “>=1.0.0 <2.0.0”
},
“dependencies”: {
“cson”: “3.0.1”,
“jquery”: “2.1.4”
}
}

但是安装的时候发现package.json变成了:

在他人的插件里的package.json并没有这些信息。

同时也发现在node_modules文件夹内除了dependencies里写的cson与jquery以外还多出了coffee-script、eachr、requirefresh等文件夹。目前插件仍未能正常运行,请问是哪一步出错了吗?

安装的时候 npm 会在 package.json 里加一些信息,从你的截图来看应该是正常的。

较新版本的 npm 会将依赖「拍平」,也就是说依赖的依赖(例如 cson 应该是依赖 coffee-script 的)会直接放在顶层的 node_modules 里。

所以你提到的都是正常现象,请问你所说的 Bug 具体是指什么现象?

你好,非常感谢你的回复。

是这样的,我是根据https://github.com/Sheng-Bo/atom-cht-menu的文本部分进行了简体中文化,并根据1.10一些新增的内容做了些代码调整。但是在我自己的插件里,设置页打开之后会出现除了当前打开的选项外其他均没有汉化的现象(等了一段时间后会部分恢复)。

但是当我把我插件所有代码(除了package.json与node_modules以外)与原作者的插件的相应代码替换后发现运行一切正常,上述bug也并没有发生,所以我才怀疑是package.json和node_modules的问题。

这是我的插件https://github.com/Reedo0910/atom-simplified-chinese-menu

Atom.io的地址为https://atom.io/packages/atom-simplified-chinese-menu

可以尝试把 node_moduels 删除(备份)后重装一下试试;然后建议确认一下是否和其他插件冲突(是否有有安装其他汉化类的插件)。

已经重装了node_moduels并且确认没有安装其他汉化类插件,但是bug仍未得到解决,十分头痛。

请问在大概哪个npm版本能做到其他插件的package.json的那种格式?因为我翻了我装的其他插件,唯独只有我的package.json有点另类,我想看看是不是这一点的问题。

十分感谢:grin:

这样的话我也不是很了解了,还有一点就是确认你在安装和开发过程中用的都是 apm 而不是 npm.

好的,谢谢你

貌似是npm的问题,因为我刚刚安装了原作者的插件(用的是atom的插件下载 / apm),发现他的package.json显示得跟我的一样了,同时node_moduels也出现了“拍平”,也出现了和我一样的bug……

麻烦再问一下,如何将npm版本降级呢?

如果是为 Atom 开发插件的话,建议直接用 Atom 自带的 apm 来代替 npm.

降级只要重新装一下低版本的 npm 就好了。

好的,谢谢