package.json里的script 设置了命令后无效
发布于 2个月前 作者 qianjiahao 261 次浏览 来自 问答

尝试自己写个小模块,在从npm install后,因为需要执行模块里面的脚本,在试过后发现有两种选择:

选择一:一步步的选路径,进入到模块里要执行的脚本目录下,执行脚本 选择二:在当前自己的项目中引入模块后,执行当前自己项目中的脚本

选择一的问题是每次要执行一大串的路径,太麻烦了,后来看到网上说写在package.json里的script里,试过后发现无效。。。 选择二的问题是在执行自己项目的脚本后,虽然能执行模块里的脚本,但是会顺带这把当前自己项目的脚本内容也给执行了。。。

现在就好纠结,希望大家能告知下为什么在script里设置的脚本命令无效

10 回复

把package.json发上来

@captainblue2013 我自己新建了个项目,然后npm install 了自己的模块 然后在当前的项目的package.json里的scrpti里:

"scripts": {
    "start":"node ./node_modules/cn-province-city/index.js -s"
  },

有个 -s 是在模块的脚本的一个命令

if(process.argv[2] === '-s' || process.argv[2] === '--save'){
save(process.argv[3]);
}

截图半天传不上去。。。

自己建的项目的目录结构,期望执行的模块脚本为cn-province-city里的index.js QQ20150517-1@2x.png QQ20150517-2@2x.png

如果不是默认的,需要

npm run xxxx

@i5ting 起作用了,现在是设置当前项目的package.json里的script好使,我想给模块设置script命令,应该怎么弄呢?是不是用Makefile?

@qianjiahao 不是很懂,再说说

@i5ting npm run xxx 是运行当前位置的package.json的script吧,如果是模块的呢?

@i5ting 我希望在任意自己的项目中,使用 引用的模块的命令 ,或者说 给引用的模块指定命令,然后在任意地方执行 , 我试了在自己的项目中设置执行 引用模块的命令 , 是可以运行命令了,但是每次让引用模块的用户去手动的添加scripts,感觉用户体验很差。。。

@qianjiahao

npm install -g ip-cli

这样它就是全局的,没必要每次都手动啊

@i5ting 明白了 配置成全局

回到顶部