【问题标题】:npm start script with babel-node and dotenv带有 babel-node 和 dotenv 的 npm 启动脚本
【发布时间】:2019-02-12 00:18:26
【问题描述】:

我有这个运行良好的脚本

"start": "nodemon -x node -r dotenv/config src/index.js"

我想用 babel-node 代替 node。于是有了新脚本:

"start": "nodemon -x babel-node --presets=env -r dotenv/config -- src/index.js"

但我得到了这个错误

[nodemon] starting `babel-node --presets=env -r dotenv/config src/index.js`
internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module 'pathTo/dotenv/config'

你能帮忙吗?

【问题讨论】:

    标签: javascript babeljs package.json nodemon npm-scripts


    【解决方案1】:

    我认为您应该检查 pathTo/dotenv/confit 资源路径。 我知道 Babel 节点包文件有非常严格的路径规则。

    【讨论】:

      【解决方案2】:

      是的,

      "start": "nodemon -x babel-node -r node_modules/dotenv/config --presets=env src/index.js"
      

      似乎有效

      编辑事实上这绝对行不通

      【讨论】:

        【解决方案3】:

        我知道这是一个相当老的线程,但这对我有用。完全披露,我真的不知道 为什么 这有效,但确实有效。压缩文件以确保相关性。

        环境

        Windows 10
        Node 10.13.0
        NPM 6.4.1
        Babel 7.2.3
        Nodemon 1.18.9
        Dotenv 6.2.0
        

        package.json:

        {
            "scripts": {
                "dev": "nodemon src/index.js -- --require node_modules/dotenv/config"
            }
        }
        

        nodemon.json:

        {
            "execMap": {
                "js": "babel-node --presets @babel/preset-env"
            }
        }
        

        【讨论】:

          【解决方案4】:

          这对我有用

              "start": "nodemon --exec babel-node -r node_modules/dotenv/config index.js"
          

          【讨论】:

            【解决方案5】:

            这个issues 在 babel 中存在了很短的时间。 @babel/node 似乎无法解析节点模块,当使用 --require flag

              "start": "nodemon --exec babel-node -r ./node_modules/dotenv/config src/index.js"
            

            这个问题现在是resolved。 使用 @babel/node 允许来自 node_modules 的 -r

              "start": "nodemon --exec babel-node -r dotenv/config src/index.js"
            

            【讨论】:

            • 如果您能围绕您的解决方案提供一些解释,那就太好了。
            • 这只是例外答案的副本,这有什么帮助?
            • 为了使 SO 平台正常工作,现有的答案应该被投票,而不是重复。如果有错别字,请在帖子下方添加评论,或提出建议。 SO 平台的运作方式与论坛不同。但这是该平台价值的一部分。每个平台都有自己的优势。此外,当引用另一个帖子(Q 或 A)时,需要链接到它,因为没有其他简单的方法可以判断您指的是哪个帖子。答案的顺序会随着答案的数量而变化,并且每个答案的投票都会发生变化。它还取决于每个用户选择的“排序”顺序。另外,请阅读下文..
            • 虽然此代码可以解决 OP 的问题,但最好包含关于您的代码如何解决 OP 问题的说明。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到他们自己的代码中。 SO 不是编码服务,而是知识资源。此外,高质量、完整的答案更有可能得到支持。这些功能,以及所有帖子都是独立的要求,是 SO 作为一个平台的一些优势,使其与论坛区分开来。请务必使用源文档的解释和/或引用以及指向源文档的链接来补充您的代码。
            • 也就是说,欢迎来到 SO。我们期待您未来的贡献。请阅读StackOverflow.com/help 的“提问”和“回答”部分的热门帖子,了解更多指南。
            【解决方案6】:

            我在这种情况下使用 npm 包“env-cmd”。

              "scripts": {
                "start": "env-cmd --file ./path/to/.env nodemon --exec babel-node index.js"
              }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-11-11
              • 2016-08-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-09-15
              • 2016-05-13
              • 1970-01-01
              相关资源
              最近更新 更多