You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建npm init脚本?解决Windows下JScript执行Node脚本问题

问题:npm init <package> 用Microsoft JScript而非Node执行创建脚本

根据npm文档,npm init <package> 命令会对应调用名为create-<package>的包来预配置新项目。我创建了create-my-app包,目录结构如下:

  • 根目录
    • client-package
    • create-my-app
      • index.js
      • package.json

已经在client-package目录中执行npm link create-my-app完成包关联,但运行npm init my-app时,npm虽然定位到了create-my-app中的index.js,却用Microsoft JScript执行该脚本,而非Node.js,请问如何修正这个问题?


解决方法
  • 给脚本添加Shebang并配置package.json的bin字段
    Windows系统会通过脚本开头的Shebang识别执行器,同时npm需要通过bin字段明确入口脚本:

    1. 在create-my-app/index.js的第一行添加Shebang:
      #!/usr/bin/env node
      // 你的脚本内容
      
    2. 在create-my-app/package.json中添加bin配置,指定入口脚本:
      {
        "name": "create-my-app",
        "version": "1.0.0",
        "bin": "./index.js"
      }
      
  • 重新执行npm link生效配置
    在create-my-app目录下重新运行npm link,确保新的package.json配置被npm识别。

  • 修复Windows下.js文件的默认关联
    如果上述操作无效,检查Windows是否将.js文件默认关联到JScript:

    1. 打开命令提示符,执行assoc .js,确认输出为.js=JSFile
    2. 执行ftype JSFile,查看关联的执行程序。如果显示为JScript相关路径,执行以下命令修改为Node.js(替换为你的Node实际安装路径):
      ftype JSFile="C:\Program Files\nodejs\node.exe" "%1" %*
      

内容的提问来源于stack exchange,提问作者treeno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:30:44