【问题标题】:Loading a local ParcelJS plugin加载本地 ParcelJS 插件
【发布时间】:2019-02-19 19:38:55
【问题描述】:

我想创建一个插件,以便我可以使用 parcel 原始加载某种类型的文件。 Parcel 文档指出:

使用 parcel-plugin-@your-scope/parcel-plugin- 前缀在 npm 上发布此包,它将被自动检测并加载,如下所述。
...
package.json 中列出的带有这些前缀的任何依赖项都将在初始化期间自动加载。

由于这是一次性的,我不想将代码作为插件发布到 npm 上。如何使用包裹加载我的项目本地插件?

提前致谢。

【问题讨论】:

    标签: javascript npm parceljs


    【解决方案1】:

    由于我找不到以parcel 方式执行此操作的方法,因此我以npm 方式执行此操作:

    我创建了一个名为local_modules 的文件夹(这可以是任何你想要的。)然后在local_modules 中创建parcel-plugin-x。在里面,我像往常一样创建了我的插件。我还创建了一个package.json 指定入口点main。您可以指定模块所需的依赖项,就像这是一个单独的项目一样(这就是!)。

    {
      "name": "parcel-plugin-x",
      "version": "0.1.0",
      "description": "Parcel plugin x",
      "main": "index.js",
      "devDependencies": {
      },
      "dependencies": {
      }
    }
    

    目录结构:

    project-folder---local_modules---parcel-plugin-x  
                 |---package.json                  |
                                                   |---index.js
                                                   |---package.json
    

    然后我在project-folder 中运行npm i --save-dev .local_modules/parcel-plugin-x。它将"parcel-plugin-x": "./local_modules/parcel-plugin-x", 行添加到根package.json这是在 npm 中加载本地模块的标准方式。 每次对插件进行更改时,都必须运行 npm upgrade。您还应该增加插件的版本。这会将插件复制到node_modules 并安装依赖项。

    根据 parceljs 文档:

    在 package.json 中列出的带有这些前缀的任何依赖项都将 初始化时自动加载。

    现在可以了! :)

    【讨论】:

      【解决方案2】:

      我做了类似的事情,但使用了npm link

      在插件文件夹中(parcel-plugin-x)只需运行:npm link

      在项目文件夹中使用插件:

      • 链接到 parcel-plugin-x:npm link parcel-plugin-x
      • package.json文件中,手动添加依赖到parcel-plugin-x

      package.json

      "devDependencies": {
          "parcel-plugin-x": "^0"
      }
      

      每次对插件进行更改时,您不必运行npm upgrade,但您可能必须删除parcel 创建的.cache 文件夹,因为parcel 将跳过处理缓存资产。

      【讨论】:

        【解决方案3】:

        我认为您可以使用package.json 中的工作区选项来做到这一点:https://docs.npmjs.com/cli/v7/using-npm/workspaces

        这个库似乎正在实现它:https://github.com/astegmaier/stackoverflow-parcel-namer

        【讨论】:

          猜你喜欢
          • 2020-11-03
          • 2021-01-13
          • 2018-06-30
          • 2012-05-20
          • 1970-01-01
          • 2023-04-03
          • 2019-09-23
          • 1970-01-01
          • 2011-11-12
          相关资源
          最近更新 更多