在Webpack中读取已解析路径的文件

Dav*_*veJ 5 javascript node.js webpack babeljs

我有一个节点模块,我想让它与webpack兼容.我目前正在使用以下模式:

const fs = require('fs');
const someTemplate = require.resolve('./templates/template.css');

fs.readFile(someTemplate, 'utf8', (err, templateStr) => {
  // Do something with`templateStr`
});
Run Code Online (Sandbox Code Playgroud)

问题是require.resolve将返回模块ID(数字)而不是路径,当然对数字执行readFile操作将失败.

如何使它与node和Webpack兼容.

Tud*_*soi 17

我不得不深挖以找到这个.

它似乎可以通过使用一些browserify插件和webpack来解决.

下面的答案是复制粘贴,因为SO不允许仅链接答案

假设您有以下节点源:

var test = require('fs').readFileSync('./test.txt', 'utf8');
Run Code Online (Sandbox Code Playgroud)

之后npm install transform-loader brfs --save,将以下加载器添加到您的配置中:

module.exports = {
    context: __dirname,
    entry: "./index.js",
    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: "transform?brfs"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

这是你的链接:https://github.com/webpack/transform-loader#typical-brfs-example