2

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

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

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

提前致谢。

4

3 回答 3

3

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

我创建了一个名为local_modules(这可以是您想要的任何内容)的文件夹。然后parcel-plugin-xlocal_modules. 在里面,我像往常一样创建了我的插件。我还创建了一个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

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

根据 parceljs 文档:

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

现在它起作用了!:)

于 2018-09-16T06:11:28.387 回答
1

我做了类似的事情,但使用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,但您可能必须删除.cacheparcel 创建的文件夹,因为 parcel 将跳过处理缓存资产。

于 2019-03-07T00:28:35.247 回答
0

我认为您可以使用以下中的工作区选项来执行此操作package.jsonhttps ://docs.npmjs.com/cli/v7/using-npm/workspaces

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

于 2022-01-08T13:51:32.340 回答