【问题标题】:Why is my es6 code not compiling after npm install?为什么我的 es6 代码在 npm 安装后无法编译?
【发布时间】:2015-09-01 08:26:24
【问题描述】:

我用 es6 创建了一个 npm 模块。你可以在github上看到here

package.json 文件中有一些脚本可以确保构建 es6 模块。在 npm 模块的上下文(目录)中运行 npm publishnpm install 时,它可以工作。但是,在另一个项目中运行npm install(即包含该模块作为依赖项)不会构建 es6 模块。 npm-debug.log 文件中似乎也没有任何错误。

我真的很想知道为什么。

【问题讨论】:

    标签: javascript node.js npm ecmascript-6 babeljs


    【解决方案1】:

    这是由于缺少.npmignore 文件造成的。由于没有,npm 改用.gitignore 文件。这会过滤掉我不想在源代码管理中使用的 dist/ 文件夹。 This commit 修复了问题

    【讨论】:

      【解决方案2】:

      您的脚本缺少install(或postinstall)脚本。

      【讨论】:

      • 是的,我是这么想的,但这个项目似乎没有:github.com/rackt/redux/blob/master/package.json 并且以某种方式工作
      • @Dakuan 如果您从注册表安装模块,它应该可以工作,因为该项目和您的项目都在使用prepublish。但是,如果您从目录 (npm install /some/path/to/module) 安装模块,则需要额外的 install 脚​​本。
      • 我正在做一个npm install backbone.lazify --save,但它不起作用。
      • @Dakuan 你的包包含一个.gitignore 不包括dist/,并且缺少.npmignore 这意味着dist/ 将不会被发布(见this)。
      【解决方案3】:

      如果您使用prepublish 挂钩上的脚本构建代码,那么当其他人安装它时,您不需要再次构建它。它应该随内置的 ES6 代码一起提供。

      实际上,您可能希望将您的 src 目录添加到您的 .npmignore 文件中,这样它就不会附带任何无法直接使用的 JS。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-10
        • 1970-01-01
        • 2014-10-03
        • 1970-01-01
        • 2017-07-02
        • 2021-06-11
        • 2016-01-08
        • 1970-01-01
        相关资源
        最近更新 更多