将self视为npm的节点模块

时间:2017-01-09 02:17:00

标签: javascript npm

我有一个作为节点模块发布的javascript项目。出于某些原因,我有一些源代码使用相对路径导入此项目中的其他文件:

// <this_module_path>/action/foo.js
import execution from './execution';
import types from '../types';

以及使用模块名称作为根路径来导入此项目中的其他文件:

// <this_module_path>/action/doSomething.js
// Using module name to import

// equals to import './helpers.js' in this case (in the same folder)
import executionHelpers from 'this-module/action/helpers.js';
// equals to import '../types/helpers' in this case
import typeHelpers from 'this-module/types/helpers.js';

如何使用模块名称而不是相对路径导入其他项目文件?

1 个答案:

答案 0 :(得分:0)

NodeJS使用CommonJS导入javascript模块。向NodeJS添加ES6 import / export语法的时间表no clear。因此,您需要使用Babel将代码转换为CommonJS模块系统,然后才能在NodeJS上运行它。

如何使用CommonJS

执行此操作
  1. this-module模块创建单独的包。需要在主模块的node_modules目录中创建包。您可以使用npm init目录中的node_modules命令执行此操作。

  2. 在该文件中,您需要创建一个Javascript文件(通常称为index.js并将其作为该软件包的主脚本。

  3. 您的package.json应该是这样的:

    {
      "name": "test",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
    }
    
    1. index.js中,您可以导出变量(例如helperstypes),您可以轻松地将其导入主包中。