我想要我的文件总是由我的项目的根目录而不是相对于当前模块.
例如,如果你看看https://github.com/visionmedia/express/blob/2820f2227de0229c5d7f28009aa432f9f3a7b5f9/examples/downloads/app.js第6行,你会看到
express = require('../../')
Run Code Online (Sandbox Code Playgroud)
这真是糟糕的IMO.想象一下,我想把我的所有例子都放在根目录上,只有一个级别.这是不可能的,因为我必须在每个示例中更新超过30个示例和多次.对此:
express = require('../')
Run Code Online (Sandbox Code Playgroud)
我的解决方案是基于root的特殊情况:如果一个字符串以$开头,那么它相对于项目的根文件夹.
任何帮助表示赞赏,谢谢
现在我正在使用require.js,它允许您以一种方式编写,并在客户端和服务器上运行.Require.js还允许您创建自定义路径.-«
现在我转到webpack + gulp,我使用enhanced-require来处理服务器端的模块.请参阅此处的基本原理:http://hackhat.com/p/110/module-loader-webpack-vs-requirejs-vs-browserify/
我正在用一个使用babel transpiler的es6编写节点应用程序.
我有2个文件index.js和my-module.js我的根目录
- index.js
- my-module.js
Run Code Online (Sandbox Code Playgroud)
我-module.js
export let myFunc = () => {
console.log('myFunc was called!!!');
}
Run Code Online (Sandbox Code Playgroud)
index.js
import {myFunc} from './my-module';
myFunc();
Run Code Online (Sandbox Code Playgroud)
如果我从命令行运行以下行,一切都按预期工作.
$ babel-node index.js >> myFunc was called!!!
Run Code Online (Sandbox Code Playgroud)
但是如果我在导入my-module时删除了点:
import {myFunc} from '/my-module';
myFunc();
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Error: Cannot find module '/my-module'
Run Code Online (Sandbox Code Playgroud)
我无法使用绝对路径导入模块的任何原因?无论如何改变.babelrc配置来支持它?
谢谢
是否有人能够解释ES6模块加载器(或Polyfills,如System.js,Webpack等)的简单import和System.import声明之间的区别
就像是
System.import('https://code.jquery.com/jquery.js').then();
Run Code Online (Sandbox Code Playgroud)
似乎是可能的,也是一种简单的
import 'jquery';
Run Code Online (Sandbox Code Playgroud)
是否System.import有import语句后回调的唯一可能性?
javascript ecmascript-harmony ecmascript-6 es6-module-loader