【问题标题】:How to structure my npm module to use external config file if present?如何构建我的 npm 模块以使用外部配置文件(如果存在)?
【发布时间】:2019-08-20 06:04:27
【问题描述】:

我正在制作一个 React 组件作为 npm 模块。到目前为止,我设法使用 webpack 来打包代码,一切看起来都很好。但是我想让我的模块全局可定制。我的方法是在项目的根目录中使用config.json 文件。我不知道如何以这样的方式做到这一点: 1.如果文件不存在,什么也不会发生(我在模块根文件夹中有默认配置) 2. 如果文件存在 - 使用其选项以及未指定的默认选项。用户配置总是需要覆盖默认值。

我尝试了条件require,但这似乎不起作用

【问题讨论】:

  • 您可以在单独的文件中创建一个节点脚本,并使其通过您的 npm 命令运行,例如 build,在该节点脚本下您放置一个条件语句,例如 `build: node scripts/build.js `

标签: reactjs npm webpack


【解决方案1】:

编写节点脚本并像这样通过NPM命令运行它

  "scripts": {
    "start": "node scripts/start.js",
    "build": "node scripts/build.js",
  },

将 start.js 或 build.js 文件保存在 scripts 文件夹下,内容如下(这只是指导它如何工作的参考,您可能需要根据您的要求进行更改)

const fs = require('fs');
const webpack = require('webpack');

if (fs.existsSync('../config/webpack.config.dev.js')) {
  console.log('The file exists.');
  const config = require('../config/webpack.config.dev');
  let compiler = webpack(config);
  compiler.run((err, stats) => {
    console.log(err, stats);
  });

}

可以参考webpack节点接口参考here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多